Pregunta

¿Es posible hacer llamadas al sistema en Objective-C?

Tengo el siguiente código:

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

Como llegar a la salida?

Gracias

¿Fue útil?

Solución

Este es un candidato perfecto para el uso de -[NSFileManager contentsOfDirectoryAtPath:error:] en lugar de envolver una función de shell incorporado y analizar la salida. Para los comandos de propósito general donde se necesita la salida - y donde no hay una funcionalidad equivalente "gratis" en Cocoa (sólo se necesita tiempo para aprender la API está disponible) - NSTask es generalmente una alternativa mucho mejor que system().

Otros consejos

Debe utilizar NSTask . Si sólo necesita los resultados de ls, hay envolturas de sistemas de archivos más apropiados en Cocoa.

Si te gusta hacerlo de la forma C se puede utilizar popen. Esto puede ser usado para leer la salida también. Sin embargo, las respuestas sobre el uso de soluciones de Objective-C son probablemente los que mejor.

Objetivo-C no evita que un programa para invoque system() o cualquiera de sus equivalentes.

Cocoa Touch hace.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top