Tubes nommés sous linux

maxialex5 Messages postés 4 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 30 avril 2006 - 30 avril 2006 à 10:35
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 - 30 avril 2006 à 11:58
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

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
30 avril 2006 à 11:58
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
0
Rejoignez-nous