sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | 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 }