问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

os.popen os.system是非阻塞的吗

发布网友 发布时间:2022-05-15 07:28

我来回答

1个回答

热心网友 时间:2023-10-13 15:58

popen和system都可以执行外部命令。
popen相当于是先创建一个管道,fork,关闭管道的一端,执行exec,返回一个标准的io文件指针。
system相当于是先后调用了fork, exec,waitpid来执行外部命令
popen本身是不阻塞的,要通过标准io的读取使它阻塞
system本身就是阻塞的。

最近写的程序,要求进程在调用的外部命令运行完毕之后,再继续 向下进行。
一开始调用的popen,然后只是用了fgetc,使其阻塞,但是总是阻塞不了。原因就是如果外部命令有很多的输出内容,那fgets在得到输出的第一个字符的时候就返回了,不在阻塞了;调用fread,如果size和nitems设置的不够大,也是一样的问题。比如外部命令要输出100个字符,结果size是sizeof(char),nitems是10,那么当fread读到地10个字符的时候,就已经满足条件了,就返回了。
正确的方法是调用system,因为system最后会调用waitpid,来等待子进程运行完毕。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我女儿是2012年2月14日,阴历正月二十三下午5点11分出生的,求一个好听... 起名。女孩2012年农历十月二十一晚上二十三点五十分出生本人姓胡_百度... 2012年农历九月二十三凌晨两点三十五出生的女孩按五行属象怎么取名... 2012年农历九月初十 二十三点三十六出生的男孩 五行缺什么 任姓 取什 ... 高一地理关于地转偏向力的问题 ...介绍_油管主播的生活双层楼阶段怎么发展是什么 油管主播的生活怎么增进NPC关系介绍_油管主播的生活怎么增进NPC关系是... ...介绍_油管主播的生活如何搬进大厦攻略详解是什么 ...对话框:无法访问,由于I/O设备错误,无法运行此项请求 关于移动硬盘i/o错误 Mac版本 python如何调用os.system?总是显示出一串数字 os.popen和os.system的区别 python中os.system能排除状态值吗? 人为什么到四十岁以后身体会压健康 os.system是什么意思 调用os.system后在当前运行的脚本里环境变量没有变怎么办? 什么胶能把铁和皮子粘住?好象是合金 皮就是生牛皮(植鞣革)希望高人帮帮忙 人过40后,身体都缺什么? 万能胶胶万能能粘铁能粘铜,这个喊麦是洪磊喊的,可是在QQ音乐上应该怎么搜才能下载。看清楚是QQ音乐 - 信息提示 万能胶可以粘铁吗 51自学网solidworks2010 教程有吗? 说一说,Steam 上有哪些必买游戏? 谁有51自学网solidworks视频教程发我一份 求SolidWorks2010视频教程视频!要51自学网的!谢谢! 谁有51自学网 Solidworks 的视频教程 哪位大神有51自学网的solidwork2010视频教程全集? 40岁过后身体素质下滑,想要养寿,晨起要坚持不做哪几件事? 昌化红花冻石值得收藏吗 请内行看看这块是鸡血石原石吗? 请问维E怎么敷在眼上去眼袋? 如何锁定hao123新版? 维生素E能去黑眼圈吗,维生素E去黑眼圈吗 hao123网页如何保存邮箱账号 法人章与公章有什么区别? 企业公章和法人公章一样吗? 法人章是公章吗 公司的法人印章是否属于公章,如有相关司法解释请提供 法人章 是公章还是法定代表人章?百度百科自相矛盾了 怎样获取os.system执行外部命令的执行状况 python的os.system问题 我在环境变量里面设置了win.rar的path,(比如我的winrar在c:\winrar\) 法人章必须要有印字吗 三分之二减五分之一等于多少? 三分之2-5分之1等于多少? 三分之二减五分之一 三分之二X减五分之一X等于一解方程过程答案 五分之一加三分之二减五分之一等于多少 三分之二x减五分之一x等于10.5怎么计算? 三分之二减四分之一减五分之一等于几 三分之二艾克斯减五分之一艾克斯等于十五分一艾克斯求艾克斯值是多少