社区
Linux/Unix社区
帖子详情
popen()函数的问题
ymmoon
2007-07-16 02:10:20
以下是我的程序中有关popen()函数的一段内容
if((proc_fp = popen("ps aux", "r")) == NULL)
{
cout<<"popen error\n";
return -1;
}
问题是,我在程序运行了一段时间之后,程序就报错,输出一堆的:popen error.
可是刚开始运行的还挺好的呀,问题出在哪里呢?
...全文
333
8
打赏
收藏
popen()函数的问题
以下是我的程序中有关popen()函数的一段内容 if((proc_fp = popen("ps aux", "r")) == NULL) { cout<<"popen error\n"; return -1; } 问题是,我在程序运行了一段时间之后,程序就报错,输出一堆的:popen error. 可是刚开始运行的还挺好的呀,问题出在哪里呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ymmoon
2007-07-16
打赏
举报
回复
是pclose的问题,多谢各位!
cceczjxy
2007-07-16
打赏
举报
回复
你代码多贴出来点,大家不能光凭猜测来判断.
ymmoon
2007-07-16
打赏
举报
回复
程序会多次的调用这段程序,每次调用结束都会用pclose()关闭这个文件描述符,因此在前35分钟运行是正确的,程序出错是因为proc_fp返回的值为NULL,因此会不断的输出出错信息,所以我有点迷惑,正常的打开和关闭怎么会导致popen()出错呢?
dai_weitao
2007-07-16
打赏
举报
回复
在执行pclose之前就再次popen了, 所以会出错.
mymtom
2007-07-16
打赏
举报
回复
if((proc_fp = popen("ps aux", "r")) == NULL)
{
cout<<"popen error\n";
return -1;
}
======
这样写有什么用,改为perror("popen"),就能知道错误原因了,一个可能的原因是没有popen后没有忘记调用pclose,结果超过了进程能文件描述符限制。
hzcpig
2007-07-16
打赏
举报
回复
if((proc_fp = popen("ps aux", "r")) == NULL)
{
cout<<"popen error\n";
return -1;
}
这段代码输出一次popen error就会马上退出,你输出一堆popen error,肯定不是这段代码的原因。
建议留意popen error之前的日志,那时候在做什么,输出了什么,是不是每次都是执行固定时间后出错
ymmoon
2007-07-16
打赏
举报
回复
应该不是不能多次popen,程序是在执行了将近35分钟之后才发生异常的
一开始是怀疑pclose的问题,但似乎也不是
hzcpig
2007-07-16
打赏
举报
回复
输出一堆的:popen error.说明你的程序有循环调用popen的代码,你应该检查那部分代码。
怀疑是不是因为popen一次以后不能多次popen?
Linux系统中
popen
函数
的缺陷与改造方案.pdf
Linux系统中
popen
函数
的缺陷与改造方案.pdf
如何解决fgets读取
popen
内容阻塞的
问题
如何解决fgets读取
popen
内容阻塞的
问题
linux
popen
函数
linux
popen
函数
linux
popen
函数
linux
popen
函数
linux
popen
函数
popen
使用方法示例
popen
使用方法示例,代码中调用了
popen
函数
,同时封装
函数
接口供大家调用。
自己写的
popen
自己编写
popen
函数
,可以学习学习哦,网上有
popen
的源代码
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章