synchro.cpp
来自「这是一个linux下的Shell.有命令历史和命令提示」· C++ 代码 · 共 61 行
CPP
61 行
#include "synchro.h"static volatile sig_atomic_t sigflag;static bool synchronismFlag = true;static sigset_t newmask, oldmask, zeromask;static void sig_usr(int signo);static void sig_usr(int signo){ sigflag = 1; return;}void TELL_WAIT(void){ if(signal(SIGUSR1, sig_usr) == SIG_ERR) synchronismFlag = false; if(signal(SIGUSR2, sig_usr) == SIG_ERR) synchronismFlag = false; sigemptyset(&zeromask); sigemptyset(&newmask); sigaddset(&newmask, SIGUSR1); sigaddset(&newmask, SIGUSR2); if(sigprocmask(SIG_BLOCK, &newmask, &oldmask) < 0) synchronismFlag = false;}void TELL_PARENT(pid_t pid){ kill(pid, SIGUSR2);}void WAIT_PARENT(void){ while(sigflag == 0) sigsuspend(&zeromask); sigflag = 0; if(sigprocmask(SIG_SETMASK, &oldmask, 0) < 0) synchronismFlag = false;}void TELL_CHILD(pid_t pid){ kill(pid, SIGUSR1);}void WAIT_CHILD(void){ while(sigflag == 0) sigsuspend(&zeromask); sigflag = 0; if(sigprocmask(SIG_SETMASK, &oldmask, 0) < 0) synchronismFlag = false;}bool isSynchroAble(void){ return synchronismFlag;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?