Discussion:
system
(demasiado antiguo para responder)
emilio
2004-01-11 19:26:32 UTC
Permalink
Soy novato en esto y estoy intentando utilizar la funcion system y al
compilar no me da ningun error pero al ejecutar si. El parametro que le paso
es "clrscr" aunque tb lo intente con "dir" sin exito.Utilizo el borland c
que incluye esta funcion en la ayuda y mi S.O es XP
¿puede tener algo que ver?
Gracias
Julián Albo
2004-01-11 20:25:52 UTC
Permalink
Post by emilio
Soy novato en esto y estoy intentando utilizar la funcion system y al
compilar no me da ningun error pero al ejecutar si. El parametro que le paso
es "clrscr" aunque tb lo intente con "dir" sin exito.Utilizo el borland c
que incluye esta funcion en la ayuda y mi S.O es XP
system pasa la cadena con la que lo llamas al intérprte de comandos del
sistema operativo. Windows no tiene ningún comando llamado clrscr que yo
conozca, pero dir debería funcionar... claro que probablemente la
ventana de consola se cierre al momento sin que tengas tiempo de ver
nada.

Salu2
Fernando Arbeiza
2004-01-11 23:37:32 UTC
Permalink
On Sun, 11 Jan 2004 20:26:32 +0100, emilio
Post by emilio
Soy novato en esto y estoy intentando utilizar la funcion system y al
compilar no me da ningun error pero al ejecutar si. El parametro que
le paso es "clrscr" aunque tb lo intente con "dir" sin exito.Utilizo
el borland c que incluye esta funcion en la ayuda y mi S.O es XP
¿puede tener algo que ver?
Bien, pero tienes que concretar más. "Me da un error" no nos da mucha
información.

El comando que buscas creo que es "cls" (si no recuerdo mal). No tiene
nada que ver con el C, pero recuerda que a mucha gente no le gusta que
le borren la consola sin una buena razón (puede que tengan información
que quisiesen conservar).

Si compilas este programa, quizá, por comparación, te ayude a ver el
problema que tenías con system() en el tuyo:

/******************/
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>

int main(void) {
if (system(NULL) == 0) {
fputs("No existe procesador de comandos\n", stderr);
exit(EXIT_FAILURE);
}

errno = 0;
system("jarl");
if (0 != errno) {
perror("Error en system");
exit(EXIT_FAILURE);
}

errno = 0;
system("dir");
if (0 != errno) {
perror("Error en system");
exit(EXIT_FAILURE);
}

/* Por si se te cierra la consola */
puts("\nPulse enter");
getchar();

exit(EXIT_SUCCESS);
}
/******************/

Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
Domènec
2004-01-16 16:15:12 UTC
Permalink
Post by emilio
Soy novato en esto y estoy intentando utilizar la funcion system y al
compilar no me da ningun error pero al ejecutar si. El parametro que le paso
es "clrscr" aunque tb lo intente con "dir" sin exito.Utilizo el borland c
que incluye esta funcion en la ayuda y mi S.O es XP
¿puede tener algo que ver?
system buscara un ejecutable que se llame lo que le das, pero dir y cls son
comandos que interpreta el interprete de comandos, no ejecutables.

En tiempos de (ufff!) DOS el interprete era el command.com y habia que hacer
un system de este pasandole la opcion -c y la cadena a interpretar...

Probando (en Win2K) fijate que
Botón de Inicio->Ejecutar:
dir c:\
da un error (no existe un dir.exe)

Prueba ahora
Botón de Inicio->Ejecutar:
cmd /c dir c:\ /s
si que existe un cmd.exe o lo que sea que te sabe interpretar el comando
dir.

Desde la linea de comandos prueba help cmd y leete bien las opciones del
interprete de comandos.
Mikel Irazabal
2004-01-19 08:29:47 UTC
Permalink
Post by Domènec
system buscara un ejecutable que se llame lo que le das, pero dir y cls son
comandos que interpreta el interprete de comandos, no ejecutables.
En tiempos de (ufff!) DOS el interprete era el command.com y habia que hacer
un system de este pasandole la opcion -c y la cadena a interpretar...
Sí, con el "cmd" de Win2000 y WinXP también va así (es /c en vez de -c y
creo que era /c en DOS también, pero bueno... se entiende ;-) )

Para localizar el intérprete de comandos en Windows, lo mejor es
recogerlo de la variable %comspec%, así la cosa funcionará también en
Win98 donde se llama "command" (igualito que en DOS) en vez de "cmd".

Saludos,

Mikel

Loading...