[英]replace system() with non-blocking function
我不想在C程序中使用system(),因為system(3)會阻塞,而這不是我想要的。 最佳方法是什么?
我認為快速而又骯臟的動作是調用sytem(command&)。 &將產生新的過程。
使用fork()
創建一個新進程,然后在其中使用system()
(或任何exec
函數)。 然后,原始過程將能夠繼續執行。
答案取決於您的真正目標是什么。 您沒有說您使用的是什么平台,而且我對Windows知之甚少,因此這僅涵蓋您在linux / unix上的選擇。
您可能要使用popen
。 它創建新流程,並允許您將流程輸出重定向到自己的流程。
如果在Windows中,請使用Windows API中的ShellExecute()
函數。
如果在Unix中, fork()
提到fork()
然后再選擇system()
。
如果要在特定時間后退出命令,如何使用“超時”命令:
例如:system(“超時5您的命令在這里”); //如果未完成,則在5秒內終止命令
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.