2009-08-19 9 views
2

Connaissez-vous les commandes de terminal de votre application graphique? J'ai besoin du code pour mon application. Par exemple, si je tape "netstat" dans le terminal, cela me donnera tous les ports. Je veux cela à partir de mon application xcode. Est-ce possible? BTW, il n'y a pas que la commande « netstat » il pourrait être « .... sudo »Exécuter des commandes de terminal à partir de l'application GUI?

Merci, Kevin

Répondre

3

Voici un code que je viens de couper sur un de mes applications qui utilise NSTask.

NSTask* task = [[[NSTask alloc] init] autorelease]; 
[task setLaunchPath: @"/usr/bin/java"]; 

NSArray* args = [NSArray arrayWithObjects: @"-jar", jar, @"--cue", inp, @"--dir", dir, mp3, nil]; 
[task setArguments: args]; 

taskOutputFile = [[self createTmpFile] retain]; 
NSFileHandle* taskOutput = [NSFileHandle fileHandleForWritingAtPath:taskOutputFile]; 

[task setStandardOutput: taskOutput]; 
[task launch]; 

Ceci lance une application (java) et enregistre la sortie dans un fichier temporaire

1

Si vous êtes prêt à descendre à C, vous pouvez simplement utiliser la fonction system(). Bien sûr, cela affichera les résultats de la commande. Si vous voulez stocker les résultats de la commande, vous voudrez probablement utiliser un tube.

1

Jetez un oeil à NSTask pour une façon plus Cocoa-like de le faire.