文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>管道编程中遇到的Broken pipe问题

管道编程中遇到的Broken pipe问题

时间:2007-01-09  来源:白石

    管道编程中遇到的Broken pipe问题

    在调试数据库模块和WNC模块历史数据通讯的时候,由于WNC模块管道接收来不及(可能是WNC与上位机的SOCKET连接失败,没有及时取走管道中的历史数据),经常出现broken pipe错误,同时导致数据库模块异常退出。

   知道了问题就好办了。UNIX的系统是采用信号机制向进程通知这种系统错误的,13 SIGPIPE 的默认操作是Exit,所以在程序里面写一个自己的信号处理函数,不让进程退出就OK。不过值得注意的是在截获一次信号以后,系统会把信号处理又恢复到默认状态,所以需要再次设置。另外,对于多线程,我是在主线程里面做的信号处理,其他线程没有做,但是我理解信号是发给进程的,所以应该只要有一个线程处理了信号就可以。

源码:

void InitSignal(void);
void handle_signal(int s) ;

/*初始化时及每次处理完时调用*/
void InitSignal(void)
{
 signal(SIGPIPE,handle_signal);
}
/*信号处理函数*/
void handle_signal(int s)
{
 InitSignal();
}

相关阅读 更多 +
排行榜 更多 +
像素火影次时代永恒佐助下载

像素火影次时代永恒佐助下载

角色扮演 下载
托卡美发沙龙4安装下载

托卡美发沙龙4安装下载

模拟经营 下载
尤雅闪耀国际服下载安卓版

尤雅闪耀国际服下载安卓版

休闲益智 下载