Sve@r a écrit :
On utilise plus généralement des sockets pour faire ce genre de manip... mais ça marche aussi via tubes nommé.
C'est la même démarche que pour écrire et recevoir des valeurs int dans un fichier ordinaire
FILE *fp;
int i=10;
int nb_elem;
// Ecrire dans le tube
fp=fopen("tube", "w" );
if (fp == NULL) => erreur d'ouverture
nb_elem=fwrite(&i, sizeof(int), 1, fp);
if (nb_elem != 1) => erreur d'écriture
fclose(fp);
// Lire le tube
fp=fopen("tube", "r" );
if (fp == NULL) => erreur d'ouverture
nb_elem=fread(&i, sizeof(int), 1, fp);
if (nb_elem == -1) => erreur de lecture
fclose(fp); |
La seule différence avec un fichier ordinaire, c'est qu'il te faudra impérativement avoir en parallèle 2 processus
- un processus qui lit
- un processus qui écrit
S'il n'y en a qu'un seul de lancé sur les deux, il sera bloqué dans sa phase lecture (ou écriture) tant que son homologue n'aura pas été lancé.
|