Linux编程问题—broken pipe 问题解决方法
1、问题出现现象
date>>”/mnt/hsdm/datamgr.txt”
while(1){
system(“pvmove /dev/sda p->dev”);
…
sp = sp->next;
}
error:segment fault
system error:broken pipe
2、问题出现原因
1)broken pipe的字面意思是“管道破裂”。broken pip的原因是该管道的读端被关闭。
2)broken pipe经常发生socket关闭之后(或者其他的描述符关闭之后)的write操作中。
3)发生broken pipe错误时,进程收到SIGPIPE信号,默认动作是进程终止。
4)broken pipe最直接的意思是:写入端出现的时候,另一端却休息或退出了,因此造成没有及时取走管道中的数据,从而系统异常退出;
3、问题解决方法
上面的程序之所以会出现broken pipe,是因为段错误先发生,导致程序异常退出,间接导致broken pipe;
解决方法:将段错误的原因修改就行了,即将sp = sp->next改成p = p->next;
1、问题出现现象 date>>”/mnt/hsdm/datamgr.txt” while(1){ system(“pvmove /dev/sda p->dev”); … sp = sp->next; } error:segment fault system error:broken pipe 2、问题出现原因 1)broken pipe的字面意思是“管道破裂”。broken pip的原因是该管道的读端被关闭。 2)broken pipe经常发生socket关闭之后(或者其他的描述符关闭之后)的write操作中。 3)发生broken pipe错误时,进程收到SIGPIPE信号,默认动作是进程终止。 4)broken pipe最直接的意思是:写入端出现的时候,另一端却休息或退出了,因此造成没有及时取走管道中的数据,从而系统异常退出; 3、问题解决方法 上面的程序之所以会出现broken pipe,是因为段错误先发生,导致程序异常退出,间接导致broken pipe; 解决方法:将段错误的原因修改就行了,即将sp = sp->next改成p = p->next;下一篇:
如何控制Java代码向数据库中插入数据