Bonjour,
Je suis en train de tester un peu le mkfifo et je me heurte à certains détails.
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
 
 
int main(int argc, char *argv[]) {
 
  char buf[650];
  FILE* fifo = NULL;
 
  fifo = fopen ("/tmp/pipe_sample", "r");
 
  if (fifo < 0) 
   {
        perror("Opening read pipe");
        exit(1);
    }
 
  while (1)
  {
 	sleep (2);
	if (fread(buf, sizeof(char), 1, fifo) <0) 
        {
            perror("Read the pipe");
            exit(2);
        }
 
        printf("%c", buf[0]);
    }
 
  fclose (fifo);
  return 1;
}
J'ouvre mon pipe dans mon shell avec les bonnes permissions.
J'ouvre une autre fenêtre et je tape ceci :
cat > /tmp/pipe_sample
Ensuite, je tape des trucs et la fenêtre de mon reader me lit les bonnes choses.
Tout va bien.

Sauf que quand je tape une chaîne trop longue, le reader ne veut pas me l'afficher... Une idée?

Le but est de voir si un reader lent ou un writer lent peut influencer mon programme et si j'ai un réel intérêt à changer mes accès fichiers.
Vous auriez d'autres idées de test?

Merci
Vincent