Appel système Unix en Objective-C

Est-il possible de faire un appel système en Objective-C?

J’ai le code suivant:

if (!system("ls -l")) { NSLog(@"Successfully executed"); } else { NSLog(@"Error while executing the command"); } 

Comment obtenir la sortie?

Merci

C’est un candidat idéal pour utiliser -[NSFileManager contentsOfDirectoryAtPath:error:] au lieu d’encapsuler une fonction shell intégrée et d’parsingr la sortie. Pour les commandes à usage général où vous avez besoin de la sortie – et où il n’y a pas de fonctionnalité équivalente “gratuite” dans Cocoa (il faut juste du temps pour apprendre les API disponibles) – NSTask est généralement une alternative bien meilleure que system() .

Vous devriez utiliser NSTask . Si vous avez juste besoin des résultats de ls , il y a des wrappers de système de fichiers plus appropriés dans Cocoa.

Si vous aimez le faire, vous pouvez utiliser le popen . Cela peut être utilisé pour lire la sortie également. Mais les réponses concernant l’utilisation des solutions Objective-C sont probablement les meilleures.

Objective-C n’empêche pas un programme d’invoquer le system() ou l’un de ses équivalents.

CocoaTouch fait.