the_quent1
Elite
Bonjour,
je dois réaliser un programme d'envoi/réception de messages codés (en rot13).
L'envoi et la réception dois se faire grâce a une paire de pipe FIFOs .
Le processus "envoi" est une boucle infinie qui lit les messages entrés par l'utilisateur, les encodent et les écris dans le FIFO d'envoi.
Le processus "reception" récupère les messages dans le FIFO, les décodent, et les affichent a l'écran.
Le noms des FIFOs ne peuvent pas être codés en dur dans le programme, vu que, comme l'illuste la figure, pour que les deux instances du programme communiquent le role de chaque FIFO est inversé pour chaque instance. Il faut passer le nom des FIFOs comme argument du programme.
Voila, je vous avoue que pour moi c'est pas très clair dans la manière de codé, je ne sais vraiment pas par ou commencer... j'ai donc besoin d'aide.
Le codage en rot13 est facil, je l'ai réalisé comme suit :
J'ai besoin d'aide pour le pipe, je ne vois pas vraiment comment avancer.
je dois réaliser un programme d'envoi/réception de messages codés (en rot13).
L'envoi et la réception dois se faire grâce a une paire de pipe FIFOs .
Le processus "envoi" est une boucle infinie qui lit les messages entrés par l'utilisateur, les encodent et les écris dans le FIFO d'envoi.
Le processus "reception" récupère les messages dans le FIFO, les décodent, et les affichent a l'écran.
Le noms des FIFOs ne peuvent pas être codés en dur dans le programme, vu que, comme l'illuste la figure, pour que les deux instances du programme communiquent le role de chaque FIFO est inversé pour chaque instance. Il faut passer le nom des FIFOs comme argument du programme.

Voila, je vous avoue que pour moi c'est pas très clair dans la manière de codé, je ne sais vraiment pas par ou commencer... j'ai donc besoin d'aide.
Le codage en rot13 est facil, je l'ai réalisé comme suit :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
void rot13(char * str);
int main() {
char str[256];
printf("Tapez une phrase : ");
fgets(str, sizeof str, stdin);
printf("\n%s\n", str);
rot13(str);
printf("Text code : ");
fputs(str, stdout);
fputc('\n', stdout);
fflush(stdout);
rot13(str);
printf("Text decode : ");
fputs(str, stdout);
fputc('\n', stdout);
fflush(stdout);
}
void rot13(char * str) {
static char const * const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM"
"abcdefghijklmnopqrstuvwxyzabcdefghijklm";
int i = 0;
while( str != 0 ) { char * found = strchr( letters, str );
if( found != NULL )
str = *(found + 13);
i++;
}
}
J'ai besoin d'aide pour le pipe, je ne vois pas vraiment comment avancer.