Objective-Cの中のUnixシステムコール
-
19-09-2019 - |
質問
Objective-Cでシステムコールを作ってそれは可能ですか?
私は、次のコードを持っています:
if (!system("ls -l")) {
NSLog(@"Successfully executed");
} else {
NSLog(@"Error while executing the command");
}
どのように出力を取得する?
おかげ
解決
これは<のhref = "http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_refを使用するための完璧な候補であります/ OCC / instm / NSFileManager / contentsOfDirectoryAtPath:エラー:」REL = "nofollowをnoreferrer"> -[NSFileManager contentsOfDirectoryAtPath:error:]
の代わりに内蔵シェル機能をラップし、出力を解析します。ココアで「自由のために」は同等の機能をがない場合(それだけで利用可能なAPIを学ぶために時間がかかります) - - あなたは出力を必要とする汎用コマンドの<のhref = "http://developer.apple.com一般system()
よりもはるかに優れた代替手段ですに/ MAC /ライブラリ/ドキュメント/ココア/リファレンス/財団は、/クラス/ NSTask_Class /」のrel = "nofollowをnoreferrer"> NSTaskます。
他のヒント
あなたはそれをあなたがpopen
を使用することができますCの方法をしたい場合。また、これは、出力を読み取るために使用することができます。しかし、Objective-Cのソリューションを使用する方法についての答えは、おそらくより良いものです。
のObjective-Cはsystem()
またはその等価物のいずれかをinvoqueプログラムを妨げない。
CocoaTouchはありません。