Ok, ich weiß, dass Sie eine NSTask erstellen können, um Kommandozeilen-Tools mit Objective-C auszuführen:
%Vor% Ich frage mich nur, ob es eine Möglichkeit gibt, mit interaktiven Kommandozeilen-Tools wie gdb
zu kommunizieren. Dies würde beinhalten, dass die Befehlseingaben basierend auf der Benutzerinteraktion gegeben werden (wie run
, kill
oder quit
mit gdb
) und dann basierend auf den ausgegebenen Informationen reagiert.
Sie können NSTask's setStandardInput:
, setStandardOutput:
und setStandardError:
Selektoren in Verbindung mit NSPipe-Instanzen verwenden, um mit dem gestarteten Programm zu kommunizieren.
Um beispielsweise die Ausgabe der Aufgabe zu lesen:
%Vor% Sie können dann eine NSFileHandle
-Instanz erhalten, die Sie verwenden können, um die Ausgabe der Aufgabe mit zu lesen:
Um eine Pipe zum Senden von Befehlen an gdb einzurichten, fügen Sie
hinzu %Vor% vor Sie starten die Aufgabe. Dann bekommst du das NSFileHandle
mit
Verwenden Sie die Methoden setStandardInput:
und setStandardOutput:
von NSTaks Klasse .
Tags und Links objective-c cocoa unix command-line-tool interactive-mode