SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: joaquinrg en Sábado 30 de Agosto de 2003, 18:53
-
Hola, q tal? Mi pregunta es si se puede pasar el resultado de un comando a una variable. Por ejemplo meter en una variable system("dir");
Si hago :
int variable;
system("dir")>>variable;
en variable se almacena un numero. Q significa ese numero? Hay alguna forma de hacer esto? Gracias
-
Mira el numero que almacenas de
int system(char *) no es mas que la salida del comando que ejecutaste (no la salida de pantalla, sino el valor de retorno).
Podrias ejecutarlo estilo
system("dir * > directorio.txt)
Despues usando las funciones para manejo de archivos, abrirlo y bueno, lo trabajas como quieras. No es de lo mas elegante, pero no se si tenes otra forma de hacerlo.
-
Hola, gracias por contestar, pero me parece que eso no me va a servir en este programa. Estoy intentando hacer un programa cliente/servidor. El cliente manda un comando al servidor, y este se ejecuta en el servidor. Hay alguna forma de q la salida del comando se pueda ver tambien en el cliente??habia pensado en redireccionar el comando a una varible (si es posible) y despues madar ese string al cliente con send y rcve de la misma forma q se enviaba el nombre del comando del cliente al servidor. Si redireccion el comando a un archivo luego tendria que mandar el archivo al ordenador donde esta el cliente,no? para poder leerlo, y eso ya va a ser mas complicao...Bueno, no se si me he explicado bien, pero gracias de todas formas
-
Podes hacer lo que te dije. El servidor abre el archivo txt, lo lee, analiza y lo manda por un socket o por el medio de comunicacion que uses.
Nunca escuche esod e guardar una salida de pantalla en una variable.
Podrias tambien redireccionar el descriptor de stdout a un pipe, o un fifo.
-
Hola, se pueden enviar archivos por los ssockets? es que eso no sabia, pense que solo se podian enviar variables, por eso queria meter la salida del comando en una variable. Ahora buscare sobre como mandar el archivo por los sockets, gracias
-
Por un socket puedes enviar una estructura de datos que quieras, siempre que al otro lado sepan que estructura están recibiendo.
Para enviar un archivo, puedes enviar el nombre del fichero para que el otro lo lea ,siempre que lo tenga accesible.
Si no lo tiene accesible, entonces debes enviar cadenas de caracteres que corresponderían a líneas de texto del archivo. Si es binario, enviarias arrays de bytes.
En www.geocities.com/chuidiang (http://www.geocities.com/chuidiang) tienes un pequeño ejemplo de cómo se construyen habitualmente estas estructuras (mensajes) que circulan por los sockets.
Se bueno.
-
hola, gracias, tu pagina esta muy bien, pero, es solo para programar en unix?? el primer manual sirve tambien para windows,no?
-
Bueno, yo los ejemplos de código los hago en linux, así que sé que ahí funcionan (al menos en mi PC).
Todo el tema de sockets es muy similar para windows, los coneptos son los mismos y la sintaxis de las funciones también. Creo que la única diferencia es que hay que "abrir" la librería de winsocket.dll antes de usarla y lo demás es igual.
El ejemplo simple de socekts seguramente no compila directamente en windows, aunque las modificaciones serían mínimas.
Si tienes interés en ver si algo funciona en windows, lo único que tienes que hacer es ver si el visual c++ (o c++ builder o el que sea) tienen las funciones que utilizo en los ejemplos.
Se bueno.