2012-06-18 14 views
2

我很早就厭倦了,想知道你是否可以在iOS平臺上執行終端命令。當然,就像OSX一樣。這真的很棒,但是如何輸出終端輸出到文本區域或類似的東西呢?這並不重要,只是一個有趣的項目。
我使用系統(「」)來做到這一點。iPhone SDK:System()問題

回答

1

這,我的朋友是使用system的缺點之一。我也希望你明白system在非越獄的iDevice上不可用,所以除非你按照iPhone App Minus App Store上的#1答案的指示安裝它,那麼你就不能使用它。

現在,前進,你有幾個選擇。

  1. 將命令的輸出傳遞給文件,並在應用程序中讀取該文件。你的代碼應該是這個樣子:

    system("myCommand -f \"/path/to/my/file\" > output.txt") 
    
    NSString *results = [NSString stringWithContentsOfFile:@"output.txt" usedEncoding:nil error:nil]; 
    NSLog(@"%@", results); 
    
  2. popen功能直接創建過程,然後通過管道輸出到您的應用程序:

    NSFileHandle *openProcessRead(const char *command) 
    { 
        FILE *fPtr = popen(command, "r"); 
    
        NSFileHandle *fileHandle = [[NSFileHandle alloc] initWithFileDescriptor:fileno(fPtr) closeOnDealloc:YES]; 
    
        return fileHandle; 
    } 
    

    您現在可以使用NSFileHandle文檔做你需要什麼。

+0

對其越獄排他性感到遺憾。但我只需要一些簡單的東西來使用。很好的答案!感謝您的有益建議! :) –