Re: [問題] 關於IO.popen的差異

看板Ruby作者 (1 2 3 4 疾風炭)時間12年前 (2013/01/09 16:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
: 推 mars90226:我想你搞錯IO.popen了~ 你應該是需要exec 01/09 00:01 : → mars90226:popen是把程式開起來,然後把他的stdin,stdout當成檔案 01/09 00:02 : → mars90226:所以你應該在stdin中輸入input,從stdout讀出output 01/09 00:03 : → mars90226:阿抱歉,我說錯了,你需要的是``,不是exec 01/09 01:16 : → mars90226:backticks,可以回傳程式的output 01/09 01:17 : → mars90226:迴圈的話看你的程式怎麼設計,不過``應該都很好用 01/09 01:18 我現在改成像這樣: `program argument1...` 但是實際執行的結果是 他還是fork另外一個thread去跑 然後繼續執行script本身 #我去Google的結果是backtick有做blocking...我自己的實驗結果卻沒有 而就算改用system 並且做像這樣的動作: if system(commands) ..... else ..... end 也還是另外fork一個thread去跑 script不會停止執行 另外 如果用的是像這樣: a=open("| ./b "+commands) a >> result print result a.close 也一樣是另外fork一個thread去跑 而且result沒有被印出來就跑後面的script了 exec則是直接取代了現有的process 這也不是我要的 板上有人有建議嗎? -- ˍ▃ˍ 好人不應該受制於正妹 而是正妹應該要考慮好人 // \\ aokman █◣ˍ_ 囧 for 囧rz 囧怪客 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.28.197 ※ 編輯: kira925 來自: 140.113.28.197 (01/09 16:12) ※ 編輯: kira925 來自: 140.113.28.197 (01/09 16:21) ※ 編輯: kira925 來自: 140.113.28.197 (01/09 16:27)
文章代碼(AID): #1GxIIolE (Ruby)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1GxIIolE (Ruby)