Introduction
Introduction Statistics Contact Development Disclaimer Help
Remove *at functions for Mac OS X compatibility. - sam - An updated version of …
git clone git://vernunftzentrum.de/sam.git
Log
Files
Refs
LICENSE
---
commit 72c7dc0bbc70cc1b19e186cdd0c6d2bb4a512af5
parent 39fa508a3b3d2743a06d2dc224120aae208ac992
Author: Rob King <[email protected]>
Date: Sun, 4 Sep 2016 09:57:44 -0500
Remove *at functions for Mac OS X compatibility.
Diffstat:
rsam/rsam.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
---
diff --git a/rsam/rsam.c b/rsam/rsam.c
@@ -23,12 +23,12 @@
#define PARENT_WRITE writepipe[1]
#define MAX(x, y) ((x) > (y) ? (x) : (y))
-static int home = -1;
+char path[PATH_MAX + 1];
void
cleanup(void)
{
- unlinkat(home, ".sam.fifo", 0);
+ unlink(path);
}
int
@@ -43,23 +43,22 @@ main(int argc, char **argv)
fd_set rfds;
pwent = getpwuid(getuid());
- if (!pwent || !pwent->pw_dir)
+ if (!pwent || !pwent->pw_dir || !pwent->pw_dir[0])
return perror("pwent"), EXIT_FAILURE;
- home = open(pwent->pw_dir, O_DIRECTORY | O_RDONLY);
- if (home < 0)
- return perror(pwent->pw_dir), EXIT_FAILURE;
+ strncpy(path, pwent->pw_dir, PATH_MAX);
+ strncat(path, "/.sam.fifo", PATH_MAX);
if (pipe(writepipe) != 0 || pipe(readpipe) != 0)
return perror("pipe"), EXIT_FAILURE;
- unlinkat(home, ".sam.fifo", 0);
- if (mkfifoat(home, ".sam.fifo", 0600) != 0)
+ unlink(path);
+ if (mkfifo(path, 0600) != 0)
return perror("mkfifo"), EXIT_FAILURE;
atexit(cleanup);
- fifo = openat(home, ".sam.fifo", O_RDWR);
+ fifo = open(path, O_RDWR);
if (fifo < 0)
return perror("open"), EXIT_FAILURE;
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.