社区
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.
可是刚开始运行的还挺好的呀,问题出在哪里呢?
...全文
409
8
打赏
收藏
popen()函数的问题
以下是我的程序中有关popen()函数的一段内容 if((proc_fp = popen("ps aux", "r")) == NULL) { cout<<"popen error\n"; return -1; } 问题是,我在程序运行了一段时间之后,程序就报错,输出一堆的:popen error. 可是刚开始运行的还挺好的呀,问题出在哪里呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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?
popen
()
函数
详解 具体
问题
具体分析
popen
函数
获取不到标准I/O流
先简单的解释一下
popen
函数
吧~
popen
()
函数
通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose()
函数
关闭,而不是 fclose()
函数
。pclose()
函数
关闭标准 I/O 流,等待命令执行结束,然后返回 shell 的终止状态。如果 shell 不能被执行,则 pclose() 返回的终止状态与 shell 已执行 exit 一样。type 参数只能是读或者写中的......
python
popen
函数
讲解_python中的subprocess.
Popen
()使用详解---以及注意的
问题
(死锁)...
从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。subprocess意在替代其他几个老的模块或者
函数
,比如:os.system os.spawn* os.
popen
*
popen
2.* commands.*一、subprocess.
Popen
subprocess模块定义了一个类:
Popen
各参数含义...
浅聊一下system()
函数
与
popen
()
函数
popen
()
函数
适合在需要与子进程进行双向通信的情况下使用,可以方便地读取子进程的输出或向子进程发送输入。system()
函数
适合简单的命令执行,不需要与子进程进行交互的情况下使用。在使用这些
函数
时,需要注意对命令参数的验证和过滤,以避免安全漏洞。
popen
出错
问题
解决
前天测试在4G拷机版本上报了一个
问题
,设备有很多出错打印,因为是新加的4G,之前没有这块的错误信息,发我看了下,发现是
popen
()出错 12:23:59:34[ERR][MyExe_WithCallback/43]:
popen
(lsusb) error. 12:23:59:34[ERR][L9XX_ParseCmd_LsUsb/48]:myexe error. 12:23:59:35[ERR][MyExe_WithCallback/43]:
popen
(lsusb) error. 12:23:59
popen
函数
引发的血案 -- 64位debian 6
在使用
popen
()
函数
查看my_test.py进程数的shell命令是:ps -ef | grep '/usr/bin/python /var/test/my_test.py' | grep -v grep | wc -l 返回的结果始终是0!!!但是在终端上执行该命令的结果却又是正确的! 于是只能一步一步来,先看看命令的前半部分结果是否正确,也就是使用
popen
()
函数
执行: ps
Linux/Unix社区
23,224
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章