欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

popen和system有什么區別

錢良釵2年前38瀏覽0評論

popen和system有什么區別?

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,來等待子進程運行完畢。

php禁止文件刪除代碼,popen和system有什么區別