⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.c_v2

📁 多用户银行系统
💻 C_V2
字号:
#include <stddef.h>#include <signal.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <unistd.h>#include "../include/structs.h"#include "../include/stddef.h"#define SHM_MODE (SHM_R | SHM_W) void alloc_buss(int );void save();void trans();void save_(int);void trans_(int);pid_t savepid;pid_t transpid;int main(int argc , char **argv){		key_t key;	SHM *shm;	USER *user;	int shmid;				pid_t pid;	//pid_t savepid;	//pid_t transpid;	// ignal some signal	if(fork() != 0){		printf("main process exit...\n");		exit(1);		}	if(setsid() < 0){		printf("new session error !\n");		exit(1);		}	if(fork() != 0){		printf("sub process exit....\n");		exit(1);		}	/*************************   DEAMON   **************************/		signal(SIGTTOU,SIG_IGN);	signal(SIGTTIN,SIG_IGN); 	signal(SIGTSTP,SIG_IGN);	signal(SIGHUP ,SIG_IGN);	signal(SIGRQST , alloc_buss);	 	/*	close(0);	close(1);	close(2);	*/	key = ftok("/home/lastbank/src/key" , 'a');	if(    (  shmid = shmget(key , sizeof(SHM) , 0600|IPC_CREAT|IPC_EXCL)  ) == -1    ){		printf("SHM create error !\n");		exit(1);		}	shm = (SHM *)shmat(shmid , NULL , 0);	if(shm == (void *)-1){		printf("access error !\n");		shmctl(shmid , IPC_RMID , NULL);		exit(1);		}			/***************************************************************/	if(fork() == 0){		save();			}else{	/***************************************************************/		printf("daemon pid : %d\n" , getpid());	while(1){		pause();		}	// delete the SHM when exit	shmctl(shmid , IPC_RMID , NULL);	}}void alloc_buss(int signo){	//kill(savepid , signo);	//kill(transpid , signo);	};void save(){	signal(SIGRQST , save_);	};void save_(int signo){	printf("now is in save , signo is : %d\n" , signo);	return ;	};void trans(){	signal(SIGRQST , trans_);	};void trans_(int signo){	printf("now is in transfer , signo is : %d\n" , signo);	return ;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -