elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  system(variable) en C linux
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: system(variable) en C linux  (Leído 2,546 veces)
soyloqbuskas

Desconectado Desconectado

Mensajes: 218


¡El conocimiento es de todos!


Ver Perfil
system(variable) en C linux
« en: 5 Octubre 2012, 21:14 pm »

¡Buenas a todos!

Sabeis como puedo hacer una linea como esta en C?

Código
  1. system("programa -a param1 -b %s -c param3", intVar);

Gracias, un saludo.


En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: system(variable) en C linux
« Respuesta #1 en: 5 Octubre 2012, 23:03 pm »

para ejecutar un programa desde un programa en c, tienes que informarte sobre las funciones exec(), execve(), etc.

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf1/exec.htm

un saludo!


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: system(variable) en C linux
« Respuesta #2 en: 6 Octubre 2012, 01:24 am »

Sabeis como puedo hacer una linea como esta en C?

Código
  1. system("programa -a param1 -b %s -c param3", intVar);
Deseas construir el comando que pasaras a la función "system" mientras se este ejecutando tu programa, ¿Es así?

Si ese es el caso puedes utilizar la función "sprintf" (prototipo en <stdio.h>), esta es casi idéntica a "printf" con la diferencia que la cadena no se envía a la salida estándar sino que se almacena en el array indicado.

Por ejemplo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define LONG_LINEA  256
  5.  
  6. int main(void)
  7. {
  8.   char cmd[LONG_LINEA];
  9.   int i;
  10.  
  11.   for (i = 0; i < 10; i++){
  12.      sprintf(cmd, "compilador -abc %d.c", i);
  13.      printf("%s\n", cmd);
  14.   }
  15.  
  16.   return EXIT_SUCCESS;
  17. }

Y su salida es:
Código:
compilador -abc 0.c
compilador -abc 1.c
compilador -abc 2.c
compilador -abc 3.c
compilador -abc 4.c
compilador -abc 5.c
compilador -abc 6.c
compilador -abc 7.c
compilador -abc 8.c
compilador -abc 9.c

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problbema con System.out.println(Variable);
Java
<[(x)]> 5 8,694 Último mensaje 16 Enero 2009, 16:11 pm
por <[(x)]>
Bugtraq System - Penetration Distro GNU/Linux « 1 2 »
GNU/Linux
monkecinos 13 7,677 Último mensaje 17 Marzo 2012, 00:51 am
por portaro
System 76 presenta dos portátiles con Linux
Noticias
wolfbcn 2 2,562 Último mensaje 12 Abril 2012, 20:55 pm
por Puntoinfinito
[Duda C] Como añadir variable a la función system() « 1 2 »
Programación C/C++
Dryken 10 9,580 Último mensaje 3 Julio 2012, 14:28 pm
por Dryken
[?] Volcado del output al usar system en una variable
Programación C/C++
ElTioBatiste 2 2,445 Último mensaje 10 Junio 2017, 00:08 am
por ElTioBatiste
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines