popen和system都会让父进程等待子进程结束吗

blijiang 2014-08-13 10:26:12
我希望的效果是,一个程序使用popen/system调用执行一个shell脚本,由于该shell脚本的执行需要很长时间才结束,我就不希望这个主程序一直等待脚本执行完才继续,而是异步执行该脚本同时继续下去。
但我查资料发现popen/system这两个函数都要父进程等待子进程结束时才会继续下去,那我该使用什么函数好?
...全文
770 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 liupeng_wolf 的回复:
用system执行脚本的时候,加上&,让脚本后台执行,这样system就可以立即返回了
引用 6 楼 liupeng_wolf 的回复:
用system执行脚本的时候,加上&,让脚本后台执行,这样system就可以立即返回了
请问这种方法,system的返回值是多少呢?会一直返回0吗?
www_adintr_com 2014-08-13
  • 打赏
  • 举报
回复
用 fork + exec, 你不 wait 就不会等子进程结束,搜使用 fork 的代码很多吧
「已注销」 2014-08-13
  • 打赏
  • 举报
回复
那有类似代码吗?我看到网上的代码都是父进程等待子进程结束的
www_adintr_com 2014-08-13
  • 打赏
  • 举报
回复
用 fork + exec, system 这些函数内部也是用这两个系统调用来实现的
707wk 2014-08-13
  • 打赏
  • 举报
回复
用多线程试试
  • 打赏
  • 举报
回复
用system执行脚本的时候,加上&,让脚本后台执行,这样system就可以立即返回了
帅得不敢出门 2014-08-13
  • 打赏
  • 举报
回复
还可在线程中执行。 或者system中后台执行。
jlfzhz 2014-08-13
  • 打赏
  • 举报
回复
引用 1 楼 adlay 的回复:
用 fork + exec, system 这些函数内部也是用这两个系统调用来实现的
+1

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧