run_command.c - slstatus - status monitor | |
git clone git://git.suckless.org/slstatus | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
run_command.c (501B) | |
--- | |
1 /* See LICENSE file for copyright and license details. */ | |
2 #include <stdio.h> | |
3 #include <string.h> | |
4 | |
5 #include "../slstatus.h" | |
6 #include "../util.h" | |
7 | |
8 const char * | |
9 run_command(const char *cmd) | |
10 { | |
11 char *p; | |
12 FILE *fp; | |
13 | |
14 if (!(fp = popen(cmd, "r"))) { | |
15 warn("popen '%s':", cmd); | |
16 return NULL; | |
17 } | |
18 | |
19 p = fgets(buf, sizeof(buf) - 1, fp); | |
20 if (pclose(fp) < 0) { | |
21 warn("pclose '%s':", cmd); | |
22 return NULL; | |
23 } | |
24 if (!p) | |
25 return NULL; | |
26 | |
27 if ((p = strrchr(buf, '\n'))) | |
28 p[0] = '\0'; | |
29 | |
30 return buf[0] ? buf : NULL; | |
31 } |