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
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值