mirror of
https://github.com/troglobit/libite.git
synced 2026-10-12 10:12:22 +00:00
Replace mknod() with creat()
For mknod(), mode must be S_IFIFO otherwise the behaviour is unspecified according to SUS, and apparently Debian/kFreeBSD is in the hater list.
This commit is contained in:
+8
-3
@@ -139,10 +139,15 @@ int whichp (const char *cmd);
|
||||
*/
|
||||
static inline int touch(const char *path)
|
||||
{
|
||||
int fd;
|
||||
|
||||
if (utimensat(AT_FDCWD, path, NULL, 0)) {
|
||||
if (errno == ENOENT)
|
||||
return mknod((path), S_IFREG|0644, 0);
|
||||
return -1;
|
||||
if (errno != ENOENT)
|
||||
return -1;
|
||||
fd = creat(path, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
|
||||
if (fd < 0)
|
||||
return -1;
|
||||
close(fd);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user