免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2108 | 回复: 2

[函数] fgets挂死 [复制链接]

论坛徽章:
0
发表于 2016-05-24 10:22 |显示全部楼层
测试中发现fgets挂死的现象,gdb跟踪栈帧信息如下:
  1. (gdb) bt
  2. #0  0x00717430 in __kernel_vsyscall ()
  3. #1  0x005558eb in read () from /lib/libc.so.6
  4. #2  0x004ef72b in _IO_new_file_underflow () from /lib/libc.so.6
  5. #3  0x004f144b in _IO_default_uflow_internal () from /lib/libc.so.6
  6. #4  0x004f2a5a in __uflow () from /lib/libc.so.6
  7. #5  0x004e536c in _IO_getline_info_internal () from /lib/libc.so.6
  8. #6  0x004e52b1 in _IO_getline_internal () from /lib/libc.so.6
  9. #7  0x004e41ea in fgets () from /lib/libc.so.6
复制代码
只有一个线程会调用到这里。代码如下:
  1. fp = popen(cmd, "r");
  2. if(fp == NULL)
  3.         {
  4.                 return -1;
  5.         }
  6.        
  7.         while(fgets(line, sizeof(line), fp))
  8.         {
  9.                 if(strstr(line, string))
  10.                 {
  11.                         pclose(fp);
  12.                         return 1;
  13.                 }
  14.         }

  15.         pclose(fp);
  16.         return 0;
复制代码

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2016-05-24 11:35 |显示全部楼层
你的cmd要是没输出,可不就等在那么

论坛徽章:
0
发表于 2016-05-24 13:51 |显示全部楼层
lxyscls 发表于 2016-05-24 11:35
你的cmd要是没输出,可不就等在那么


我的cmd是
  1. ping ip -c 1 -W 1
复制代码
-W timeout
              Time to wait for a response, in seconds. The option affects only timeout in absense of any  responses,  otherwise
              ping waits for two RTTs.
限制了命令执行的超时时间的,不会一直等着
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP