|
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
|
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 |
|

|
warp
Q
Mensajes: 2,009
Grupo: Registrado
Registro en: Jun 2005
Estado:
Sin Conexión
Reputación: 10
|
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:
#include <stdlib.h>
int main()
{
system(\"top\");
return 0;
}
aca te dejo la referencia:
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 |
|
 |
gastonsechen
Usuario PL
Mensajes: 4
Grupo: Registrado
Registro en: Jul 2005
Estado:
Sin Conexión
Reputación: 0
|
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 |
|
 |
warp
Q
Mensajes: 2,009
Grupo: Registrado
Registro en: Jun 2005
Estado:
Sin Conexión
Reputación: 10
|
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 |
|

|
Hermes
El Alquimista
Mensajes: 461
Grupo: Registrado
Registro en: May 2005
Estado:
Sin Conexión
Reputación: 8
|
RE: como junto un script del shell con c?
/****
Si entendemos todo lo que estamos haciendo,
no estamos aprendiendo nada...
****/
|
|
| 07-15-2005 10:33 AM |
|
 |
gastonsechen
Usuario PL
Mensajes: 4
Grupo: Registrado
Registro en: Jul 2005
Estado:
Sin Conexión
Reputación: 0
|
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 |
|
 |
gastonsechen
Usuario PL
Mensajes: 4
Grupo: Registrado
Registro en: Jul 2005
Estado:
Sin Conexión
Reputación: 0
|
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 |
|

|
warp
Q
Mensajes: 2,009
Grupo: Registrado
Registro en: Jun 2005
Estado:
Sin Conexión
Reputación: 10
|
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 |
|
 |
angelm
Ututo-Developers
Mensajes: 308
Grupo: Registrado
Registro en: May 2006
Estado:
Sin Conexión
Reputación: 5
|
RE: como junto un script del shell con c?
La Inteligencia es la mano de los Big-Man
----------------------------------
Angel Matias Orozco
Team GNU/Ututo Developers
|
|
| 12-21-2006 12:48 AM |
|
 |
angelm
Ututo-Developers
Mensajes: 308
Grupo: Registrado
Registro en: May 2006
Estado:
Sin Conexión
Reputación: 5
|
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.
exitos
La Inteligencia es la mano de los Big-Man
----------------------------------
Angel Matias Orozco
Team GNU/Ututo Developers
|
|
| 12-21-2006 01:03 AM |
|

|
Snoopydog
Usuario PL
Mensajes: 27
Grupo: Registrado
Registro en: Jun 2007
Estado:
Sin Conexión
Reputación: 0
|
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
|
|
| 10-04-2007 12:44 PM |
|
 |