?? client.c
字號:
#include <setjmp.h>#include <stdlib.h> // malloc#include <signal.h>#include <unistd.h>#include "../include/tools.h"#include "../include/structs.h"#include "../include/stddef.h"#include "../include/clientlib.h"void sig_client(int sig);SHM *shm;char *oper;int shmid;int main(){ USER user; char *guibuf; int index; shmid = shmget(KEY , SHM_SIZE , 0600); shm = shmat(shmid , 0 , 0); printf("shm address : %p\n" , shm); // to ignal Ctrl+C// signal(SIGINT , SIG_IGN); signal(SIGRSPN , sig_client); oper = (char *)malloc(sizeof(char) * (OPER_SIZE + 1)); guibuf = (char *)malloc(sizeof(char) * (GUI_BUF_SIZE + 1)); if(!oper || !guibuf){ printf("malloc error !\n"); exit(1); }/* do{ getInput(&user); }while(identify(&user) < OK); // can't work if use : while(! identify(&user)) !!*/ readFile(guibuf);/* key = ftok("/root/test.c" , 0); shmid = shmget(key , SHM_SIZE , 0600); shm = shmat(shmid , 0 , 0); */ index = getSHM(); (shm->swap_arr)[index].swap.cpid = getpid(); sigset_t mask , omask; sigemptyset(&mask); while(1){ showGUI(guibuf); getChoice(oper); strcpy( (shm->swap_arr)[index].swap.mark , oper); execute(index , oper); while((shm->swap_arr)[index].swap.over != DONE){} (shm->swap_arr)[index].swap.over = NODONE; showResult(oper , index); //sigsuspend(&mask); //pause(); }};void sig_client(int signo){ printf("################################\n"); printf(" server returned\n"); printf("################################\n"); printf("sig handle in client returned ....\n"); return ;};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -