当前位置: 技术问答>linux和unix
Linux/Unix: 进程问题
来源: 互联网 发布时间:2016-07-31
本文导语: 上次有同学提出用三个线程循环打印ABC的问题(已解决),昨天突然想,能不能用两个进程循环打印AB呢,然后就写了段代码,但老是不正确,请各位大虾指正;如果不是循环,进程能很好地同步,一加上 ...
上次有同学提出用三个线程循环打印ABC的问题(已解决),昨天突然想,能不能用两个进程循环打印AB呢,然后就写了段代码,但老是不正确,请各位大虾指正;如果不是循环,进程能很好地同步,一加上
while(1)
结果就乱七八糟了,不知道有没有解决办法
while(1)
结果就乱七八糟了,不知道有没有解决办法
#include
#include
#include
#include
#include
#include
#include
#include
#include
//global flag used to check whether a signal has occurred or not
volatile sig_atomic_t flag = 0;
//signal sets
sigset_t zeromask, newmask, oldmask;
//error handler
static void errMsg(char *fmt,...){
#define LEN 1024
char buf[LEN];
va_list ptr;
va_start(ptr,fmt);
vsnprintf(buf,LEN,fmt,ptr);
va_end(ptr);
puts(buf);
abort();
}
//signal handlers
static void sigusr1(int signo){
flag = 1;
}
static void sigusr2(int signo){
flag = 1;
}
//signal set initializer
static void sigset_init(){
if((sigemptyset(&zeromask)