Ejecutar comando de shell desde C

30 01 2008

Hay ocaciones en que ejecutar un comando nativo del sistema, o mejor dicho un comando reconocido por nuestra shell, nos facilita mucho la vida….

Bueno, no para todos es tan obvio como hacer esto, asi que aca voy a dejar registrado como realizar esta sencilla operacion ;)

El formato es simple :D
system("comando que quieras");

Aqui dejo un sencillisimo ejemplo, primero creamos un archivo llamado myls.c y dentro de él ponemos el siguiente codigo:

#include<stdio.h>
int main(){
system("ls -l");
return 0;
}

Al copiar y pegar el codigo va a tener un problemas con las comillas, asi que las tienen que poner denuevo :D

Para compilar hacemos lo siguiente:
gcc myls.c -o myls

y finalmente para ejecutarlo, hacemos lo siguiente :

./myls

Al ejecutar este programa , será lo mismo que ejecutar en la consola el comando “ls -l” ( sin comillas).

Saludos


Acciones

Información

10 respuestas

11 09 2008
Juan Roberto Gonzalez

Se puede ejecutar un comamdno shell desde C y esperar por una respuesta antes de seguir procesando???
Gracias!

2 03 2009
danito

sencillo y util saber como van las llamadas al systema

16 03 2009
joel-jonas

bueno gracias por tu post es muy bueno pero tengo una duda si quisiera abrir un carpeta como le hago..?

16 03 2009
jgutierrez

Hola Joel-jonas!
Bueno en el caso que quieras abrir una carpeta para navegarla puedes poner la instruccion “nautilus ~”, por ejemplo, esto abriria tu home en una ventana de nautilus.
No se si esa era tu pregunta.
Saludos

15 06 2009
Mario

Si quiero capturar los resultados?
Gracias.

3 12 2009
luis

men demasiadas gracias, usted no sabe la salvada que me acaba de pegar

12 12 2010
ivan

Como hago para capturar la salida del system(“ls -l”) por ejemplo, y mostrarlo en un textEdit???

23 04 2011
Maipu

system(“ls -l > Archivo”)

si el archivo no existe lo crea y si existe lo sobreescribe.

si en vez de poner “>” pones “>>” agrega el contenido al final del archivo.

Tambien seria sano agregar la librería stdlib.h al principio del codigo para que al compilar con la opcion “-Wall” no arroje warning.

#include

Saludoss

11 11 2011
bars

hola amig me podrias ayudar, lo que necesito hacer es abrir un directorio pero desde el mismo programa (sin abrir el directorio) mas bien es acceder al directorio, por eso nautilus no me sirve xq eso abre el directorio pero yo ocupo algo para acceder una ilustracion seria algo asi
system(“cd directorio”); algo asi me entiendes??

4 03 2012
Julio

muchas gracias funciono perfecto

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s




Seguir

Get every new post delivered to your Inbox.