📄 login.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"void sig_client(int sig);SHM *shm;char *oper;int shmid;int main(){ USER user; char *guibuf; int index; key_t key; key = ftok("/root/test.c" , 0); shmid = shmget(key , SHM_SIZE , 0600); shm = shmat(shmid , 0 , 0); printf("shm address : %p\n" , shm); //char *oper; // 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) ); readFile(guibuf);/* key = ftok("/root/test.c" , 0); shmid = shmget(key , SHM_SIZE , 0600); shm = shmat(shmid , 0 , 0); */ printf("shm address : %p\n" , shm); //exit(1); index = getSHM(); (shm->swap_arr)[index].swap.cpid = getpid(); sigset_t mask , omask; sigemptyset(&mask); while(1){ showGUI(guibuf); getChoice(oper); execute(index , oper); while(!(shm->swap_arr)[index].swap.ok){} (shm->swap_arr)[index].swap.ok = 0; //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 + -