Format error messages properly Make use of strerror(errno) and format all errors equally: function ['parameters']: error message
jump to
@@ -1,5 +1,7 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdio.h> +#include <string.h> #if defined(__linux__) #include <limits.h> #include <string.h>@@ -28,12 +30,12 @@ int fd;
fd = open("/dev/apm", O_RDONLY); if (fd < 0) { - fprintf(stderr, "Failed to open file /dev/apm"); + fprintf(stderr, "open '/dev/apm': %s\n", strerror(errno)); return NULL; } if (ioctl(fd, APM_IOC_GETPOWER, &apm_info) < 0) { - fprintf(stderr, "Failed to get battery info"); + fprintf(stderr, "ioctl 'APM_IOC_GETPOWER': %s\n", strerror(errno)); close(fd); return NULL; }
@@ -1,5 +1,7 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdio.h> +#include <string.h> #include <sys/statvfs.h> #include "../util.h"@@ -10,7 +12,7 @@ {
struct statvfs fs; if (statvfs(mnt, &fs) < 0) { - fprintf(stderr, "Failed to get filesystem info"); + fprintf(stderr, "statvfs '%s': %s\n", mnt, strerror(errno)); return NULL; }@@ -24,7 +26,7 @@ int perc;
struct statvfs fs; if (statvfs(mnt, &fs) < 0) { - fprintf(stderr, "Failed to get filesystem info"); + fprintf(stderr, "statvfs '%s': %s\n", mnt, strerror(errno)); return NULL; }@@ -39,7 +41,7 @@ {
struct statvfs fs; if (statvfs(mnt, &fs) < 0) { - fprintf(stderr, "Failed to get filesystem info"); + fprintf(stderr, "statvfs '%s': %s\n", mnt, strerror(errno)); return NULL; }@@ -52,7 +54,7 @@ {
struct statvfs fs; if (statvfs(mnt, &fs) < 0) { - fprintf(stderr, "Failed to get filesystem info"); + fprintf(stderr, "statvfs '%s': %s\n", mnt, strerror(errno)); return NULL; }
@@ -1,5 +1,7 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdio.h> +#include <string.h> #include <unistd.h> #include "../util.h"@@ -8,7 +10,7 @@ const char *
hostname(void) { if (gethostname(buf, sizeof(buf)) == -1) { - fprintf(stderr, "gethostbyname failed"); + fprintf(stderr, "gethostbyname: %s\n", strerror(errno)); return NULL; }
@@ -1,5 +1,6 @@
/* See LICENSE file for copyright and license details. */ #if defined(__linux__) +#include <errno.h> #include <ifaddrs.h> #include <netdb.h> #include <stdio.h>@@ -15,7 +16,7 @@ int s;
char host[NI_MAXHOST]; if (getifaddrs(&ifaddr) == -1) { - fprintf(stderr, "Failed to get IPv4 address for interface %s", iface); + fprintf(stderr, "getifaddrs: %s\n", strerror(errno)); return NULL; }@@ -26,7 +27,7 @@ }
s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); if ((strcmp(ifa->ifa_name, iface) == 0) && (ifa->ifa_addr->sa_family == AF_INET)) { if (s != 0) { - fprintf(stderr, "Failed to get IPv4 address for interface %s", iface); + fprintf(stderr, "getnameinfo: %s\n", gai_strerror(s)); return NULL; } return bprintf("%s", host);@@ -46,7 +47,7 @@ int s;
char host[NI_MAXHOST]; if (getifaddrs(&ifaddr) == -1) { - fprintf(stderr, "Failed to get IPv6 address for interface %s", iface); + fprintf(stderr, "getifaddrs: %s\n", strerror(errno)); return NULL; }@@ -57,7 +58,7 @@ }
s = getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in6), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); if ((strcmp(ifa->ifa_name, iface) == 0) && (ifa->ifa_addr->sa_family == AF_INET6)) { if (s != 0) { - fprintf(stderr, "Failed to get IPv6 address for interface %s", iface); + fprintf(stderr, "getnameinfo: %s\n", gai_strerror(s)); return NULL; } return bprintf("%s", host);
@@ -1,6 +1,8 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <sys/utsname.h> #include <stdio.h> +#include <string.h> #include "../util.h"@@ -10,6 +12,7 @@ {
struct utsname udata; if (uname(&udata) < 0) { + fprintf(stderr, "uname: %s\n", strerror(errno)); return NULL; }
@@ -11,7 +11,7 @@ Display *dpy = XOpenDisplay(NULL);
XKeyboardState state; if (dpy == NULL) { - fprintf(stderr, "Cannot open display"); + fprintf(stderr, "Cannot open display\n"); return NULL; } XGetKeyboardControl(dpy, &state);
@@ -10,7 +10,7 @@ {
double avgs[3]; if (getloadavg(avgs, 3) < 0) { - fprintf(stderr, "Failed to get the load avg"); + fprintf(stderr, "getloadavg: Could not obtain load average.\n"); return NULL; }
@@ -1,4 +1,5 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <dirent.h> #include <stdio.h> #include <string.h>@@ -13,7 +14,7 @@ DIR *fd;
int num = 0; if ((fd = opendir(dir)) == NULL) { - fprintf(stderr, "Failed to get number of files in directory %s", dir); + fprintf(stderr, "opendir '%s': %s\n", dir, strerror(errno)); return NULL; }
@@ -1,4 +1,5 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdio.h> #include <string.h>@@ -12,7 +13,7 @@ FILE *fp;
fp = popen(cmd, "r"); if (fp == NULL) { - fprintf(stderr, "Failed to get command output for %s", cmd); + fprintf(stderr, "popen '%s': %s\n", cmd, strerror(errno)); return NULL; } p = fgets(buf, sizeof(buf) - 1, fp);
@@ -1,5 +1,6 @@
/* See LICENSE file for copyright and license details. */ #if defined(__linux__) +#include <errno.h> #include <stdio.h> #include <string.h>@@ -15,12 +16,12 @@ char *match;
fp = fopen("/proc/meminfo", "r"); if (fp == NULL) { - fprintf(stderr, "Failed to open file /proc/meminfo"); + fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno)); return NULL; } if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) { - fprintf(stderr, "swap_free: read error"); + fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno)); fclose(fp); return NULL; }@@ -47,12 +48,12 @@ char *match;
fp = fopen("/proc/meminfo", "r"); if (fp == NULL) { - fprintf(stderr, "Failed to open file /proc/meminfo"); + fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno)); return NULL; } if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) { - fprintf(stderr, "swap_perc: read error"); + fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno)); fclose(fp); return NULL; }@@ -83,11 +84,11 @@ char *match;
fp = fopen("/proc/meminfo", "r"); if (fp == NULL) { - fprintf(stderr, "Failed to open file /proc/meminfo"); + fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno)); return NULL; } if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) { - fprintf(stderr, "swap_total: read error"); + fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno)); fclose(fp); return NULL; }@@ -110,11 +111,11 @@ char *match;
fp = fopen("/proc/meminfo", "r"); if (fp == NULL) { - fprintf(stderr, "Failed to open file /proc/meminfo"); + fprintf(stderr, "fopen '/proc/meminfo': %s\n", strerror(errno)); return NULL; } if ((bytes_read = fread(buf, sizeof(char), sizeof(buf) - 1, fp)) == 0) { - fprintf(stderr, "swap_used: read error"); + fprintf(stderr, "fread '/proc/meminfo': %s\n", strerror(errno)); fclose(fp); return NULL; }
@@ -1,5 +1,7 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdio.h> +#include <string.h> #if defined(__linux__) #include <sys/sysinfo.h> #elif defined(__OpenBSD__)@@ -35,8 +37,10 @@ size = sizeof(boottime);
if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1) uptime = now - boottime.tv_sec; - else + else { + fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno)); return NULL; + } #endif h = uptime / 3600; m = (uptime - h * 3600) / 60;
@@ -1,6 +1,8 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <pwd.h> #include <stdio.h> +#include <string.h> #include <sys/types.h> #include <unistd.h>@@ -18,7 +20,7 @@ {
struct passwd *pw = getpwuid(geteuid()); if (pw == NULL) { - fprintf(stderr, "Failed to get username"); + fprintf(stderr, "getpwuid '%d': %s\n", geteuid(), strerror(errno)); return NULL; }
@@ -1,5 +1,6 @@
/* See LICENSE file for copyright and license details. */ #if defined(__linux__) +#include <errno.h> #include <fcntl.h> #include <sys/soundcard.h> #include <sys/ioctl.h>@@ -18,19 +19,19 @@ char *vnames[] = SOUND_DEVICE_NAMES;
afd = open(card, O_RDONLY | O_NONBLOCK); if (afd == -1) { - fprintf(stderr, "Cannot open %s", card); + fprintf(stderr, "open '%s': %s\n", card, strerror(errno)); return NULL; } if (ioctl(afd, SOUND_MIXER_READ_DEVMASK, &devmask) == -1) { - fprintf(stderr, "Cannot get volume for %s", card); + fprintf(stderr, "ioctl 'SOUND_MIXER_READ_DEVMASK': %s\n", strerror(errno)); close(afd); return NULL; } for (i = 0; i < LEN(vnames); i++) { if (devmask & (1 << i) && !strcmp("vol", vnames[i])) { if (ioctl(afd, MIXER_READ(i), &v) == -1) { - fprintf(stderr, "vol_perc: ioctl"); + fprintf(stderr, "ioctl 'MIXER_READ(%d)': %s\n", i, strerror(errno)); close(afd); return NULL; }
@@ -1,5 +1,6 @@
/* See LICENSE file for copyright and license details. */ #if defined(__linux__) +#include <errno.h> #include <ifaddrs.h> #include <linux/wireless.h> #include <sys/socket.h>@@ -25,7 +26,7 @@
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/net/", iface, "/operstate"); fp = fopen(path, "r"); if (fp == NULL) { - fprintf(stderr, "Failed to open file %s", path); + fprintf(stderr, "fopen '%s': %s\n", path, strerror(errno)); return NULL; } p = fgets(status, 5, fp);@@ -36,7 +37,7 @@ }
fp = fopen("/proc/net/wireless", "r"); if (fp == NULL) { - fprintf(stderr, "Failed to open file /proc/net/wireless"); + fprintf(stderr, "fopen '/proc/net/wireless': %s\n", strerror(errno)); return NULL; }@@ -71,12 +72,12 @@ wreq.u.essid.length = IW_ESSID_MAX_SIZE+1;
snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface); if (sockfd == -1) { - fprintf(stderr, "Failed to get ESSID for interface %s", iface); + fprintf(stderr, "socket 'AF_INET': %s\n", strerror(errno)); return NULL; } wreq.u.essid.pointer = id; if (ioctl(sockfd,SIOCGIWESSID, &wreq) == -1) { - fprintf(stderr, "Failed to get ESSID for interface %s", iface); + fprintf(stderr, "ioctl 'SIOCGIWESSID': %s\n", strerror(errno)); close(sockfd); return NULL; }
@@ -1,4 +1,5 @@
/* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdarg.h> #include <stdio.h> #include <string.h>@@ -29,7 +30,7 @@ va_list ap;
int n; if (!(fp = fopen(path, "r"))) { - fprintf(stderr, "fopen for %s failed", path); + fprintf(stderr, "fopen '%s': %s\n", path, strerror(errno)); return -1; } va_start(ap, fmt);