请教在程序中,跟system函数差不多, 而让系统命令在后台执行的函数

发布于 2022-07-22 22:56:11 字数 185 浏览 12 评论 5

我用system函数执行一个系统命令的时候,因为该系统命令需要比较长的时间, 而导致我的程序主线程一直在等待.  请问有没有什么函数跟system的作用差不多, 而调用以后马上返回, 让执行系统命令的操作在子线程中进行的函数.

我执行的操作是: system("service nfs restart")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

森末i 2022-07-28 03:50:05

原帖由 longshort 于 2006-11-1 09:55 发表
可以在你的命令字符串最后加一个“&”。

另外,这里的情况可以使用exec库例程调用。一般步骤是:

1.fork一个子进程
2.若fork正常,父进程设置信号SIGCHLD为忽略(不返回),可以去做其它事,子进程 ...

>>
>>
>>赞同使用fork一下来解决。
>>
>>

神经大条 2022-07-28 02:56:39

fork一个子进程,或者创建一个自动释放的线程

如果需要获得后台进程的执行结果,可以用popen代替system

[ 本帖最后由 s5unty 于 2006-11-2 15:15 编辑 ]

睫毛溺水了 2022-07-28 02:52:57

昨天晚上试过, 我用了加&的方法,已经能够满足要求. 谢谢回答我问题的热心兄弟.

淡淡的优雅 2022-07-28 02:47:27

可以先fork一个子进程,然后调用system。

你是我的挚爱i 2022-07-23 21:36:27

可以在你的命令字符串最后加一个“&”。

另外,这里的情况可以使用exec库例程调用。一般步骤是:

1.fork一个子进程
2.若fork正常,父进程设置信号SIGCHLD为忽略(不返回),可以去做其它事,子进程则按以下顺序执行
3.子进程调用例程setpgrp,将自己提交给进程init
4.调用适当的exec例程,覆盖子进程空间

多参考手册页,会有帮助的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文