Re: [問題] 關於IO.popen的差異
: 推 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)
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章