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 }