NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
procfs difference between NetBSD and Linux
The below program demonstrates a difference between /proc on NetBSD and
Linux.
If run in a directory with a writable "foo.txt" then on Linux the second
openat() succeeds but on NetBSD it fails (EEXIST). This behavior
difference breaks the latest samba (4.14.x) on NetBSD.
Can this be fixed?
cheers
mark
---
#include <fcntl.h>
#include <stdio.h>
#include <limits.h>
#include <unistd.h>
int main ()
{
int fd, new_fd;
char buf[PATH_MAX];
fd = openat (AT_FDCWD, "foo.txt", O_RDONLY|O_NOFOLLOW);
printf ("fd = %d\n", fd);
sprintf(buf, "/proc/self/fd/%d", fd);
sleep(10);
new_fd = openat(AT_FDCWD, buf, O_RDWR|O_CREAT|O_NONBLOCK, 0744);
printf ("new_fd = %d\n", new_fd);
sleep (20);
}
Home |
Main Index |
Thread Index |
Old Index