bon, un update.
J'ai reecris le code en C et j'ai le meme probleme.
Considerer l'exemple suivant:
erik@powell:/tmp$ cat foo.c
- include <stdio.h>
- include <sys/types.h>
- include <sys/stat.h>
- include <fcntl.h>
int main ()
{
int fd = open("foo.in", O_WRONLY|O_APPEND,0);
write (fd, "schedule\n",9);
fsync(fd);
while(1);
return 0;
}
erik@powell:/tmp$ make foo
cc foo.c -o foo
erik@powell:/tmp$ mkfifo foo.in
erik@powell:/tmp$ tail -f foo.in &
[3] 5145
erik@powell:/tmp$ ./foo
^Cschedule
erik@powell:/tmp$ ./foo
schedule
^C
erik@powell:/tmp$
la premiere fois que j'appelle foo, rien n'apparait sur mon terminal jusqu'a ce que je tue foo avec ctrl-c, mais la deuxieme fois, tout fonctionne correctement.
Si je rajoute plus que une ligne dans foo.c, le comportement reste le meme. Je me demande donc si c'est un probleme de la fifo ou de tail maintenant.
Un avis ?