Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

funciones de C para usar comandos del sistema

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