Bonjour, je voudrais récupérer un fichier dans un pipe afin de travailler dessus. Mon fichier qui se nomme « res » fait plus de 800 lignes, et je voudrais récupérer les lignes une par une afin de les traiter avec mon programme. Le problème, c'est que je n'arrive pas à utiliser la fonction popen comme il se doit.
Voici mon code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include<stdio.h>
#include<stdlib.h>
#define COMMAND_LEN 20
#define DATA_SIZE 512
int main(void){
FILE *pf;
char command[COMMAND_LEN];
char data[DATA_SIZE];
int cpt=1;
// Execute a process listing
sprintf(command, "cat res");
// Setup our pipe for reading and execute our command.
pf = popen(command,"r");
if(!pf){
fprintf(stderr, "Could not open pipe for output.\n");
return;
}
// Grab data from process execution
fgets(data, DATA_SIZE , pf);
// Print grabbed data to the screen.
fscanf (pf,"%s\n", data);
printf("test %d: %s", data);
cpt=cpt+1;
pclose(pf);
return 0;
} |
J'obtient uniquement la première ligne de mon fichier:
MONUJPFU77;SYSTEM_FS_H;'C:'=35%;70;90;
Quelqu'un pourrait m'aider SVP?
Partager