URL: https://linuxfr.org/forums/linux-general/posts/probleme-de-comprehension-sur-les-tubes-nommes Title: probleme de compréhension sur les tubes nommés Authors: cosmoff Date: 2020年08月07日T19:35:49+02:00 License: CC By-SA Tags: Score: 1 Bonjour à tous, via la commande mkfifo j'ai crée un fichier pipe : mkfifo /tmp/myPipeNamed. Puis ensuite à travers deux terminaux j'ai ouvert ce fichier : cat /tmp/myPipeNamed (sur chaque terminal) puis via le code : int main(int argc, char const *argv[]) { int pipeNamed_fd = open("/tmp/myPipeNamed", O_WRONLY); char buffer[256]; while(1) { write(1,"ecrivez quelque chose : ", 24); int byteReceivedFromKeyboard = read(0, buffer, 256); buffer[byteReceivedFromKeyboard - 1] = '0円'; //on remplace le retour chariot \n par 0円 write( pipeNamed_fd, buffer, strlen( buffer )); } close(pipeNamed_fd); return 0; } ce qui me pose probleme c'est que le message que j'envoie au fichier /tmp/myPipeNamed est recu aléatoirement sur un de mes terminals ou j'ai lancé la commande : cat /tmp/myPipeNamed alors que je m'attendais a ce que chaque terminal recoit le message car ils sont tous les deux a l'écoute du fichier pipe. Il semblerait que le noyau ne transmet le message juste à un seul receveur, mais pourquoi faire ca ? Merci de votre aide

AltStyle によって変換されたページ (->オリジナル) /