免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1666 | 回复: 2
打印 上一主题 下一主题

求助关于system和popen的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-16 12:20 |只看该作者 |倒序浏览
现在linux下编的这个程序,用system函数来调用另一个exe文件,以下是部分的代码:

     sprintf(szEXEPath, "%s/%s", GBINPATH, MAINNAME);
        sprintf(szCmdString, "%s %s", szEXEPath, szInputFilePath);
        status = system(szCmdString);                           /*调用计算程序*/

        if(WIFEXITED(status) == 0)                                      /*调用非正常结束*/
        {
                printf("Error in running the program!\n");
                return 0;
        }

目前的问题是程序运行总是发生WIFEXITED(status) == 0的情况,但是调用的exe文件运行有结果文件产生,并且计算结果正常,不明白为什么会进入那个出错的判断体里,去网上查,说是子进程非正常退出会出现WIFEXITED(status) == 0,大家帮我想想可能是什么原因造成的呢?

还有用popen替换掉system能解决这个问题么?我想取得调用函数的返回值,popen能实现么?

谢谢啦!

论坛徽章:
0
2 [报告]
发表于 2007-09-17 11:21 |只看该作者
为什么你就认为WIFEXITED是非正常操作呢?

论坛徽章:
0
3 [报告]
发表于 2007-09-17 11:31 |只看该作者
WIFEXITED(status)
              returns  true  if  the  child  terminated normally, that is, by calling exit() or _exit(), or by
              returning from main().
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP