私は以前に退屈していて、iOSプラットフォームでターミナルコマンドを実行できるかどうか疑問に思いました。確かに、OSXと同じようにできます。これは本当に素晴らしいですが、端末が出力するものをテキスト領域などに出力するにはどうすればよいですか?それは深刻なことではなく、ただ楽しいプロジェクトです。
私はそれを行うためにsystem( "")を使用しています。
質問する
898 次
1 に答える
1
これ、私の友人はを使用することの欠点の1つです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ドキュメントを使用して必要なことを実行できます。
于 2012-06-18T12:02:40.037 に答える