Je suis en train de faire un cours sur les systèmes d'exploitation et nous sommes supposés apprendre à utiliser les tuyaux pour transférer des données entre les processus.Utilisation de tuyaux sous Linux avec C
On nous a donné ce simple code qui montre comment utiliser les tuyaux, mais j'ai du mal à le comprendre.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
main()
{
int pipefd [2], n;
char buff[100] ;
if(pipe(pipefd) < 0)
{
printf("can not create pipe \n");
}
printf("read fd = %d, write fd = %d \n", pipefd[0], pipefd[1]);
if (write (pipefd[1],"hello world\n", 12)!= 12)
{
printf("pipe write error \n");
}
if( (n = read (pipefd[0] , buff, sizeof (buff) )) <= 0)
{
printf("pipe read error \n");
}
write (1, buff, n) ;
exit (0);
}
Que fait la fonction d'écriture? Il semble envoyer des données à la pipe et aussi l'imprimer à l'écran (au moins il semble que la fonction d'écriture est appelée pour la deuxième fois).
Quelqu'un at-il des suggestions de bons sites Web pour en apprendre davantage sur des sujets tels que celui-ci, FIFO, les signaux, d'autres commandes linux de base utilisés dans C?