fifo.c - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
fifo.c (835B)
---
1 /*
2 * send anything in dwm status bar with fifo
3 * example : echo "hello" >> /tmp/dwm.fifo
4 * Author: Xavier Cartron (XC), thuban@yeuxdelibad.net
5 */
6
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include <string.h>
10 #include <fcntl.h>
11 #include <sys/types.h>
12 #include <sys/stat.h>
13
14 #define FIFO "/tmp/dwm.fifo"
15
16 char *
17 snotif()
18 {
19 char buf[BUFSIZ];
20 int len = 0;
21
22 int f = open(FIFO, O_NONBLOCK | O_RDWR);
23 if (f == -1){
24 return smprintf("%s","");
25 }
26
27 len = read(f, buf, sizeof(buf));
28 if (len == -1){
29 perror("fifo read");
30 close(f);
31 return smprintf("%s","");
32 }
33 close(f);
34
35 buf[len-1] = ' ';
36
37 return smprintf("%s",buf);
38 }
39
40 int
41 main(void)
42 {
43 int ret = 0;
44 ret = mkfifo(FIFO, ACCESSPERMS);
45 if (ret == -1) perror("fifo creation");
46
47 // your code
48
49 return 0;
50 }