[問題] 想請問一下linux底下的popen()函數,希望有人指點一下。

看板C_and_CPP (C/C++)作者 (tittanlee)時間16年前 (2009/03/04 19:48), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
popen()函數原型如下: FILE *popen(const char *command, const char *type); 當執行成功會回傳一個FILE*描述子,但是,假如今天我下的指令是像vi這一種, 因為popen是fork一個shell來執行我的指令的輸出。 但是因為vi這種指令,不會有輸出的結果,有人有什麼可以建議,如果遇到vi這一種process 該怎麼做。我自已本身是用select下去做,在timeval設定2秒,如果2秒沒有讀的動做,就停止。 應該不太可能把全部的指令做成一個陣列下去判斷吧? 現在卡在這邊,不知道有什麼更好的方法,希望有高手可以指點一下。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.5.224.98

03/05 00:42, , 1F
先確認你的系統有沒有支援雙向 pipe 的 popen,FreeBSD 有
03/05 00:42, 1F

03/05 17:57, , 2F
沒有雙向pipe,只有單向只能r或是w
03/05 17:57, 2F
文章代碼(AID): #19hcgPlP (C_and_CPP)
文章代碼(AID): #19hcgPlP (C_and_CPP)