En C voici un truc du genre, tu peux voir dans l'exemple l'utilisation
d'un simple echo. Si qui montre l'utilit� m�me d'un "pipe nomm�".
Dans ce cas le masque de permission du pipe nomm� est h�rit� du UID/GID
du process.
On pourrait avoir aussi la possibilit� d'utiliser mkfifo en ligne de
commande et faire un bete exemple en shell.
Mais bon, je ne sais pas ce que tu veux faire mais les pipes nomm�s
peuvent servir dans certains cas. Il faut voir ce que tu veux faire
comme application et quelles sont tes buts.
Sinon n'oublie pas les sockets...
N'oublie pas les bibles :
Richard Stevens, UNIX Network Programming, Volume 1, Second Edition:
Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X.
Richard Stevens, UNIX Network Programming, Volume 2, Second Edition:
Interprocess Communications, Prentice Hall, 1999, ISBN 0-13-081081-9.
(tiens on parle des FIFOs dans celui l� 8-)))
Si tu te lances dans les Sockets, je te conseille aussi cette autre
bible (du m�me auteur postum) :
Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols,
Addison-Wesley, 1994, ISBN 0-201-63346-9.
Hope this helps
Alx
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>
main()
{
int rc;
int fifofd;
char input[255];
rc = mkfifo("ungrospipe", S_IRUSR | S_IWUSR);
if (rc != 0) {
perror("mkfifo failure");
exit(EXIT_FAILURE);
}
/* Open the FIFO for read. */
fifofd = open("ungrospipe", O_RDONLY);
if (fifofd < 0){
perror("open failure");
remove("ungrospipe");
exit(EXIT_FAILURE);
}
/* Using the FIFO with a simple echo. */
rc = system("echo >ungrospipe "
"sending a message");
if (rc != 0) {
fprintf(stderr, "error on echo %dn", rc);
remove("ungrospipe");
exit(EXIT_FAILURE);
}
rc = read(fifofd, input, _POSIX_PIPE_BUF);
if (rc < 0) {
perror("read failure");
remove("ungrospipe");
exit(EXIT_FAILURE");
}
puts("Here it is the message :");
fwrite(input, 1, rc, stdout); /* Read input from the FIFO. */
close(fifofd);
remove("ungrospipe");
exit(EXIT_SUCCESS);
}
J-C Hendrickx wrote:
> Merci, mais le man et info ne donnent pas un exemple pratique;
> Si vous avez d�j� utilis� FIFO, ce serait chouette de me
> filer un exemple.
> Pourquoi l'utilise-t-on. Comment. Genre "Hello world"
> Ou bien c'est le monstre du loch Ness ?
> Ou bien j'oublie �a.
>
> Linux ad fundum.
>
>
> --- Message original de Alexandre Dulaunoy le dim 25 mar, 2001 � 00:57:22 +0100 ---
>
>> On Sat, 24 Mar 2001, Laurent Frisee wrote:
>>
>>
>>> J-C Hendrickx wrote:
>>>
>>>
>>>> Bonjour,
>>>>
>>>> Quelqu'un pourrait-il m'�clairer sur ce qu'est et comment
>>>> utiliser un _pipe nomm�_ ?
>>>> J.C.H
>>>>
>>>
>>> wi, c'est un moyen de communiquer entre 2 pc sous windows. Si je me
>>> rappelle bien, tu ne peux en cr�er qu'un sur une machine NT mais tu peux
>>> te connecter depuis n'importe quel windows. Je sais pas pour les windows
>>> 2000 et Me.
>>>
>>
>> Hein quoi ? un "named pipe" (pipe nomme) est une FIFO. Un pipe n'est pas
>> nomme et il est uniquement utilise dans le cas ou du meme process parent.
>> Parcontre une FIFO (ou pipe nomme) est aussi half-duplex comme le
>> pipe mais il a l'avantage d'avoir un "path" unix standard ce qui permet de
>> l'atteindre facilement a partir de n'importe quel autre process via un
>> bete open.
>>
>> Comment creer un pipe nomme (FIFO), tu utilise l'appel mkfifo (cf. man).
>> Par contre comme c'est half-duplex, il faut souvent creer un pour la
>> lecture et un l'ecriture.
>>
>> Laurent je ne vois pas le rapport avec Windows ? Tu ne confonds pas avec
>> les fonctionnalites dans le protocol NetBIOS.
>>
>> hope this helps.
>>
>> alx
>> ----
>> Alexandre Dulaunoy
>> AD993-RIPE
>> AJDD1-6BONE
>> http://www.foo.be/
>>
>>
>
>
> [ Soyez pr�cis dans vos sujets svp afin de d�terminer directement ]
> [ le type de demande... ]
> [ Pour vous (d�s)inscrire, aller sur http://linuxbe.org/ml.php ]
> [ http://LinuxBe.org Contact: [EMAIL PROTECTED] ]
[ Soyez pr�cis dans vos sujets svp afin de d�terminer directement ]
[ le type de demande... ]
[ Pour vous (d�s)inscrire, aller sur http://linuxbe.org/ml.php ]
[ http://LinuxBe.org Contact: [EMAIL PROTECTED] ]