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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
MONUJPFU77;SYSTEM_FS_H;'C:'=35%;70;90;
Quelqu'un pourrait m'aider SVP?