Objective-Cでシステムコールを行うことは可能ですか?
次のコードがあります。
if (!system("ls -l")) {
NSLog(@"Successfully executed");
} else {
NSLog(@"Error while executing the command");
}
出力を取得する方法は?
ありがとう
Objective-Cでシステムコールを行うことは可能ですか?
次のコードがあります。
if (!system("ls -l")) {
NSLog(@"Successfully executed");
} else {
NSLog(@"Error while executing the command");
}
出力を取得する方法は?
ありがとう
-[NSFileManager contentsOfDirectoryAtPath:error:]
これは、組み込みのシェル関数をラップして出力を解析する代わりに使用するのに最適な候補です。出力が必要な汎用コマンドの場合、および Cocoa に「無料で」同等の機能がない場合 (利用可能な API を習得するには時間がかかるだけです)、NSTaskは一般に よりもはるかに優れた代替手段ですsystem()
。
NSTaskを使用する必要があります。の結果だけが必要な場合はls
、より適切なファイルシステム ラッパーが Cocoa にあります。
あなたがそれをするのが好きなら、あなたが使うことができるCの方法popen
. これは、出力の読み取りにも使用できます。しかし、Objective-C ソリューションの使用に関する答えは、おそらくより良いものです。
Objective-C は、プログラムが呼び出すこと、system()
またはそれに相当するものを妨げることはありません。
ココアタッチです。