1 int main(int argc, char *argv[])
3 /* Variables definition */
5 char *fortunefilename = "/tmp/fortune.fifo";
7 int fifo_server, fifo_client;
10 char buffer[PIPE_BUF];
12 snprintf(fifoname, 80, "/tmp/fortune.%d", getpid()); /* compose name */
13 if (mkfifo(fifoname, 0622)) { /* open client fifo */
15 perror("Cannot create well known fifo");
19 fifo_server = open(fortunefilename, O_WRONLY); /* open server fifo */
20 if (fifo_server < 0) {
21 perror("Cannot open well known fifo");
24 nread = write(fifo_server, fifoname, strlen(fifoname)+1); /* write name */
25 close(fifo_server); /* close server fifo */
26 fifo_client = open(fifoname, O_RDONLY); /* open client fifo */
27 if (fifo_client < 0) {
28 perror("Cannot open well known fifo");
31 nread = read(fifo_client, buffer, sizeof(buffer)); /* read answer */
32 printf("%s", buffer); /* print fortune */
33 close(fifo_client); /* close client */
34 close(fifo_server); /* close server */
35 unlink(fifoname); /* remove client fifo */