diff options
author | Michael Stapelberg <michael+x200@stapelberg.de> | 2008-11-30 01:46:01 +0100 |
---|---|---|
committer | Michael Stapelberg <michael+x200@stapelberg.de> | 2008-11-30 01:46:01 +0100 |
commit | 9388ee56e183ccb0210f6ee03bdb2f4ee9f3ebcf (patch) | |
tree | 2665b55381339bd450795bddc61f444a715e7b90 | |
parent | d9ff643b1040e3e56545b2d1ba9f664b6c258f4e (diff) |
Correctly open new files
-rw-r--r-- | wmiistatus.c | 9 | ||||
-rw-r--r-- | wmiistatus.conf | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/wmiistatus.c b/wmiistatus.c index 95cc2ef..6604533 100644 --- a/wmiistatus.c +++ b/wmiistatus.c @@ -102,9 +102,16 @@ static void cleanup_rbar_dir() { static void create_file(const char *name) { char pathbuf[strlen(wmii_path)+256+1]; int fd; + int flags = O_CREAT | O_WRONLY; + struct stat statbuf; (void)snprintf(pathbuf, sizeof(pathbuf), "%s%s", wmii_path, name); - if ((fd = open(pathbuf, O_CREAT | O_WRONLY | O_TRUNC, S_IRUSR | S_IWUSR)) < 0) + + /* Overwrite file's contents if it exists */ + if (stat(pathbuf, &statbuf) >= 0) + flags |= O_TRUNC; + + if ((fd = open(pathbuf, flags, S_IRUSR | S_IWUSR)) < 0) exit(EXIT_FAILURE); if (use_colors) { char *tmp = concat("#888888 ", wmii_normcolors); diff --git a/wmiistatus.conf b/wmiistatus.conf index c483c59..ef0a5cf 100644 --- a/wmiistatus.conf +++ b/wmiistatus.conf @@ -8,3 +8,4 @@ run_watch VPN /var/run/vpnc/pid order run,wlan,eth,battery,load,time normcolors #000000 #333333 color +get_ethspeed |