免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2214 | 回复: 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.
限制了命令执行的超时时间的,不会一直等着
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时9.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP