System(“comando”)
Hay casos que no valen, ya que en
algunos casos solo nos devuelve el retorno del programan (return 1,
return 0)
ejemplo de uso:
int resp;
resp=system(“wc ficherito”); // te
muestra en salida estandard el numero de lineas, palabras
resp nos devolvera 0 (todo ha ido
bien), o otro resultado indicando un error.
Otra posibilidad seria:
resp=system(“wc ficherito >
salida”);
generando un archivo “salida” con
los datos
pero implica ¿donde se va a crear ese
archivo de salida, tengos permisos para ese sitio...?
POPEN()
pf=popen(“comando”,”r”);
//funciona como un fopen, pero popen abre un proceso, se maneja con
un puntero de fichero y con ese proceso nos podemos comunicarnos con
el “r”, y le doy información le doy “w”
Para cerrar el proceso: pclose(pf)
Leer la información:
fread(texto,80,1,pf);
escribir la información:
print(“%s”,texto);
Emplo completo:
file *pf
char texto[100];
pf=popen(“wc fichero”,”r”);
fread(texto,80,1,pf);
print(“%s”,texto);
pclose(pf)
Ejemplo para sacar un calendario
desde C usando el comando calendar:
#include <stdio.h>
int main(int argc,
char **argv)
{
int t;
FILE *pf;
char texto[255];
char *p;
p = texto;
pf=popen("cal
-m 5","r");
fgets(texto,80,pf);
while(!feof(pf))
{
printf("%s",texto);
fgets(texto,80,pf);
}
pclose(pf);
return 0;
}
Otra forma:
#include <stdio.h>
int main(int argc,
char **argv)
{
int t;
FILE *pf;
char texto[255];
char *p;
p = texto;
pf=popen("cal
-m 5","r");
while(!feof(pf))
{
*p++=fgetc(pf);
}
*(--p)='\0';
printf("%s\n-%d-\n",texto,t);
pclose(pf);
return 0;
}
No hay comentarios:
Publicar un comentario