大概是两个月之前的一个问题。
well,事情是这样的,开始,师兄看我的代码,说,那么多memory leak啊。直接就CTRL C大丈夫?没做信号处理啊。
我就诚惶诚恐的把信号处理函数给加上去了。
大概是
handle (那个信号){
if(那个信号) {flag = ture;}
}
main()
{
……
……
flag = false;
while(!flag)
{
……
msgrcv();
……
}
……
}
然后,msgrcv那个函数,因为没有数据就阻塞了╮(╯▽╰)╭
按了CTRL C 也是没法运行到 while判断,没有办法跳出循环。
要命的是,这个程序还是开机就启动的。我也是醉了。
我感觉,给msgrcv的那个fd,加一个select模型。有timeout保护,应该能破。