Enviar Respuesta  Enviar Tema 
como junto un script del shell con c?
Autor Mensaje
gastonsechen
Usuario PL


Mensajes: 4
Grupo: Registrado
Registro en: Jul 2005
Estado: Sin Conexión
Reputación: 0
Mensaje: #1
como junto un script del shell con c?

buenas:
mi pregunta es simple como incorporo a un programa hecho en c un script del shell??
o solo me queda usr ncurses??
gracias!!!


todo camino puede andar....
todo puede andar....
07-10-2005 01:26 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
warp
Q


Mensajes: 2,009
Grupo: Registrado
Registro en: Jun 2005
Estado: Sin Conexión
Reputación: 10
Mensaje: #2
RE: como junto un script del shell con c?

Hola, si lo que quieres es ejecutar comandos del shell, sólo tienes que usar la sentencia system()...

ejemplo, para ejecutar top:

Código:
#include <stdlib.h>

int main()
{
    system(\"top\");
    return 0;
}


aca te dejo la referencia:

Código:
int  system ( const char * command );

Execute command.
  Invokes command interpreter to execute a command. Once terminated, the interpreter gives back control to the program returning an int value.

Parameters.

command
    Null-terminated string containing the system command to be executed.

Return Value.
  If a command was successfully executed the command interpreter returns an adequate value; generally 0 indicates that the action performed by the command interpreter terminated with no errors.
  A return value of -1 indicates an error, and global variable errno is set to one of the following errors:

    value    description
    ENOENT    Command interpreter not found
    ENOEXEC    Command interpreter is not executable
    ENOMEM    Error allocating memory for the process
    E2BIG    Argument list too big

Portability.
  Defined in ANSI-C.
  Return value and possible errno values are system dependent.

Example.

/* system example : DIR */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int i;
  puts (\"Trying to execute command DIR\");
  i = system (\"dir\");
  if (i==-1) puts (\"Error executing DIR\");
  else puts (\"Command successfully executed\");
  return 0;
}


saludos...


07-11-2005 07:08 AM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
gastonsechen
Usuario PL


Mensajes: 4
Grupo: Registrado
Registro en: Jul 2005
Estado: Sin Conexión
Reputación: 0
Mensaje: #3
RE: como junto un script del shell con c?

hola ! voy a tratar de explicarme mejor

lo que me interesa es poder usar en mis programas una interfas mas amena para el usuario y no solo limitarme al printf() /scanf().... es por eso que queria uncorporar por ejemplo las posibilidades del programa dialog... que hacen una intertfas bien bonita...
entonces reformulo la pregunta...
como uso dialog por ejemplo en mi porgrama...
esa forma que me decis es muy interesante... pero si yo llamo a dialog y hago un inputbox el dato capturado como lo vuelca al programa que estoy haciendo...
bueno experimento y te escribo gracias....
pd: todo esto venia a ver si era posible evitar usar ncurses o pearl \"puesto que no lo manejo ni de cerca....!!\"


todo camino puede andar....
todo puede andar....
07-14-2005 06:20 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
warp
Q


Mensajes: 2,009
Grupo: Registrado
Registro en: Jun 2005
Estado: Sin Conexión
Reputación: 10
Mensaje: #4
RE: como junto un script del shell con c?

que programa es dialog???, si necesitas guardar un parámetro dado por ese programa, sólo tenes que poner i = system (\"dialog [algo]\"); y ya esta en la variable i...

saludos...


07-14-2005 07:17 PM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
Hermes
El Alquimista


Mensajes: 461
Grupo: Registrado
Registro en: May 2005
Estado: Sin Conexión
Reputación: 8
Mensaje: #5
RE: como junto un script del shell con c?

Como dijo Warp, tendrias que usar la funcion system de C...
aca te dejo una pagina que tiene todas las opciones de dialog

http://nixdoc.net/man-pages/Linux/man1/dialog.1.html


Espero que te sirva...

Saludos!!!... 1-wink


/****
Si entendemos todo lo que estamos haciendo,
no estamos aprendiendo nada...
****/

07-15-2005 10:33 AM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
gastonsechen
Usuario PL


Mensajes: 4
Grupo: Registrado
Registro en: Jul 2005
Estado: Sin Conexión
Reputación: 0
Mensaje: #6
RE: como junto un script del shell con c?

gracias...

no se si esta sea la mejor forma de hacer una interface
pero hasta que aprenda ncurses....


todo camino puede andar....
todo puede andar....
07-15-2005 05:44 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
gastonsechen
Usuario PL


Mensajes: 4
Grupo: Registrado
Registro en: Jul 2005
Estado: Sin Conexión
Reputación: 0
Mensaje: #7
RE: como junto un script del shell con c?

bueno hola otra vez!!
estuve probando el tema de utilizar system()....
pero hay un problema .. sole devuelve valores enteros(1,0 o -1)creo..
de acuerdo al resultado de la funcion..
por esto no sirve para capturar una cadena de caracteres.....
entonces fui a buscar el codigo de dialog(programa de salvio lam) y estoy ahora trabajando con eso...\" Warp....dialog es el programa con el que esta hecha el scrip de iunstalkacion de slackware por ejemplo\"
tengo una pregunta...??
etoy haciendo un programa para diseño de circuitos electronicos (algo simple pero que no puede encontrar por ahi...) y como dije antes estoy modificando algunos fuentes.....
no hay problema con esto verdad? osea con modificar y utilizar las fuentes de otro...
tambien quisiera saber un poco mas sobre el tema de la publicacion del software.....(licencias, etc... ) y bueno creo que por el momentop es todo......
gracias atodos ustedes que estan ahi y hacen posible la existencia de gnu/linux!!!!!!!!!!!!!1
gracias!!!!!!!!
saludos.!!


todo camino puede andar....
todo puede andar....
07-25-2005 12:13 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
warp
Q


Mensajes: 2,009
Grupo: Registrado
Registro en: Jun 2005
Estado: Sin Conexión
Reputación: 10
Mensaje: #8
RE: como junto un script del shell con c?

bueno si quieres mmodificar los codigos de otros progs. te tenes que fijar que licencia tienen, si son gpl no hay drama...
aca tenes más sobre la licencia gpl: http://www.preguntaslinux.org/showthread.php?tid=510
después esta la licencia open source...
y la que es pago....

saludos...


07-25-2005 08:00 PM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
angelm
Ututo-Developers


Mensajes: 308
Grupo: Registrado
Registro en: May 2006
Estado: Sin Conexión
Reputación: 5
Mensaje: #9
RE: como junto un script del shell con c?

Hola 1-wink
Lo que queres hacer se llama en relidad tuberias osea pipe.
C/C++ interactua con shell a traves de una funcion que lee o escirbe.
Para leer mas visita http://blog.txipinet.com/index.php/2006/...-linux-vii
Si no entiendes algo avisa.
exitos1-wink


La Inteligencia es la mano de los Big-Man
----------------------------------
Angel Matias Orozco
Team GNU/Ututo Developers
12-21-2006 12:48 AM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
angelm
Ututo-Developers


Mensajes: 308
Grupo: Registrado
Registro en: May 2006
Estado: Sin Conexión
Reputación: 5
Mensaje: #10
RE: como junto un script del shell con c?

El siguiente código es una muestra clara de cómo se puede hacer una llamada utilizando tuberías y procesos hijo, de forma sencillísima:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <limits.h>

#define SIZE PIPE_BUF

int main(int argc, char *argv[])
{
FILE *file;
char *command= "ls .";
char buffer[SIZE];

file=popen( command, "r" );

while( !feof( file ) )
{
fscanf( file, "%s", &buffer );
printf( "%s\n", buffer );
}

pclose( file );

return 0;
}
Nuestro programa simplemente crea un proceso hijo que será reemplazado por una llamada al comando “ls .”, y se nos devolverá un puntero a un fichero que será el resultado de ese comando. Leemos ese fichero y lo escribimos por pantalla. Al finalizar, cerramos la tubería con pclose().

Lee tambien el post anterior y especifico web.
exitos1-wink


La Inteligencia es la mano de los Big-Man
----------------------------------
Angel Matias Orozco
Team GNU/Ututo Developers
12-21-2006 01:03 AM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
Snoopydog
Usuario PL


Mensajes: 27
Grupo: Registrado
Registro en: Jun 2007
Estado: Sin Conexión
Reputación: 0
Mensaje: #11
RE: como junto un script del shell con c?

Hola
bueno aki kon un aporte, gastonseche si necesitas usar el system y cadenas es necesario utilizar el sprintf, el cual te concatenaria una cadena a una variable y solo es necesario mandarlo en la funcion system, en el siguiente ejemplo te muestro como mandar parametros cadenas a un shell:

#include <stdio.h>
#include <stdlib.h>
int main()
{
char c[50]= “hola”;
char script[100];

sprintf(script,"/home/script.sh %s", c);
system(script);

return 0;
}

Tomando en kuenta ke en el shell script.sh cacha un valor, por ejemplo "a=$1"
Espero sirva de ayuda, saludos 1-grin

10-04-2007 12:44 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
Enviar Respuesta  Enviar Tema 

Posibles Temas Similares...
Tema: Autor Respuestas: Vistas: Ultimo Mensaje
Question Necesito Yudad par hacer un programa en c que ejecute un comando en el shell david_dx 5 1,394 10-05-2007 08:14 PM
Ultimo Mensaje: Snoopydog

Ver la Versión para Impresión
Mandar este Tema a algún Amigo
Subscríbete a este Tema | Agrega este Tema a Tus Favoritos

Salto de Foro: