Cocoa Wrapper für einen interaktiven Unix-Befehl

8

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.

    
bjz 15.06.2012, 05:23
quelle

2 Antworten

2

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:

%Vor%

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

%Vor%     
sjs 15.06.2012, 05:55
quelle
2

Verwenden Sie die Methoden setStandardInput: und setStandardOutput: von NSTaks Klasse .

%Vor%     
Parag Bafna 15.06.2012 06:02
quelle