簡體   English   中英

NSTask通過/ bin / sh或/ bin / bash問題發送自變量Cocoa Objective-C

[英]NSTask sending an argument through /bin/sh or /bin/bash problem Cocoa Objective-C

基本上,我已經通過/ bin / bash“ [path]”或/ bin / sh“ [path]”在終端中傳遞了腳本,並且我已經通過/ bin / bash -c“ [command ]”或/ bin / sh -c“ [命令]”。 兩種方式均能正常工作。 但是在我的Cocoa應用程序中,當我嘗試使用NSTask做完全相同的事情(使用/ bin / bash或/ bin / sh)時,該應用程序似乎永遠不會響應。 就像程序被卡在bash或sh內一樣。 我嘗試使用和不使用waitUntilExit來執行此操作,並且還嘗試使用終止。 仍然沒有運氣。 是否還有其他人遇到過這個問題或是否知道為什么會發生這種情況?

謝謝!

PS:我現在不在我的工作計算機上,但是,如果需要,我可以稍后提供代碼。

好。 因此,我為其他可能需要的人找到了解決方案。 基本上,有一個問題是standardInput。 該問題僅在Xcode控制台中顯示,而不是您的應用程序中的錯誤/錯誤。 解決方法是添加以下行(基本上將standardInput設置為random):

[task setStandardInput: [NSPipe pipe]];

在上述解決方案中,task是所使用的NSTask的變量名。

另請參閱:

http://www.cocoadev.com/index.pl?HowToPipeCommandsWithNSTask

[proc setLaunchPath:@"/bin/bash"];
[proc setArguments:[NSArray arrayWithObjects: @"-c", @"/usr/sbin/netstat -rn | /usr/bin/grep default", nil]];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM