2
我很早就厭倦了,想知道你是否可以在iOS平臺上執行終端命令。當然,就像OSX一樣。這真的很棒,但是如何輸出終端輸出到文本區域或類似的東西呢?這並不重要,只是一個有趣的項目。
我使用系統(「」)來做到這一點。iPhone SDK:System()問題
我很早就厭倦了,想知道你是否可以在iOS平臺上執行終端命令。當然,就像OSX一樣。這真的很棒,但是如何輸出終端輸出到文本區域或類似的東西呢?這並不重要,只是一個有趣的項目。
我使用系統(「」)來做到這一點。iPhone SDK:System()問題
這,我的朋友是使用system
的缺點之一。我也希望你明白system
在非越獄的iDevice上不可用,所以除非你按照iPhone App Minus App Store上的#1答案的指示安裝它,那麼你就不能使用它。
現在,前進,你有幾個選擇。
將命令的輸出傳遞給文件,並在應用程序中讀取該文件。你的代碼應該是這個樣子:
system("myCommand -f \"/path/to/my/file\" > output.txt")
NSString *results = [NSString stringWithContentsOfFile:@"output.txt" usedEncoding:nil error:nil];
NSLog(@"%@", results);
與popen
功能直接創建過程,然後通過管道輸出到您的應用程序:
NSFileHandle *openProcessRead(const char *command)
{
FILE *fPtr = popen(command, "r");
NSFileHandle *fileHandle = [[NSFileHandle alloc] initWithFileDescriptor:fileno(fPtr) closeOnDealloc:YES];
return fileHandle;
}
您現在可以使用NSFileHandle文檔做你需要什麼。
對其越獄排他性感到遺憾。但我只需要一些簡單的東西來使用。很好的答案!感謝您的有益建議! :) –