當前位置:編程學習大全網 - 行動軟體 - system函數阻塞怎麽辦

system函數阻塞怎麽辦

這是進程間同步的問題。解決方法是:fork壹個子進程執行system調用,父進程調用 wait 或 waitpid 等待子進程的終止信息。

父進程調用 wait 或 waitpid 時可能會:

阻塞(如果它的所有子進程都還在運行)。

帶子進程的終止信息立即返回(如果壹個子進程已終止,正等待父進程讀取其終止信息)。

出錯立即返回(如果它沒有任何子進程)。

wait 和 waitpid 這兩個函數的區別是:

如果父進程的所有子進程都還在運行,調用wait將使父進程阻塞,而調用waitpid時如果在options參數中指定WNOHANG可以使父進程不阻塞而立即返回0。

wait等待第壹個終止的子進程,而waitpid可以通過pid參數指定等待哪壹個子進程。

  • 上一篇:《我和我的三個情人》txt全集
  • 下一篇:最爛的網站
  • copyright 2024編程學習大全網