Tubes nommés sous linux

Signaler
Messages postés
4
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
30 avril 2006
-
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
-
bonjour
voila, j'essaie un peu de programmer un tube sous linux pour faire communiquer deux processus; le tube est créé mais je crois que l'ecriture et la lecture à oartir de ce tube echoue
Voilà mes codes:

POUR L'ECRIVAIN DANS LE TUBE
#include<stdio.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>

main()
{

mode_t mode;
int tub;
mode = S_IRUSR | S_IWUSR ;
char chaine[10] = "bonjour";

mkfifo ("tube", mode);
tub = open("tube", O_WRONLY);

write("tub", chaine, 10);

close(tub);
unlink(tub);

}


POUR LE LECTEUR

#include<stdio.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>

main()
{
char ent[10];
int tub;

tub = open("tube", O_RDONLY);
read(tub, ent, 10);
printf("\n On a lu :%s", ent);

close(tub);

}

1 réponse

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
Salut. Déja je commencerait par écrire write(tub,chaine, 10); au lieu de write("tub", chaine, 10); Car si mes souvenirs sont bons tu passes le descripteur de tube dans la fonction write