我有一个简单的代码,例如:
sockaddr_un address;
address.sun_family = AF_UNIX;
strcpy(address.sun_path, path);
unlink(path);
int fd = socket(AF_UNIX, SOCK_STREAM, 0);
bind(fd, (sockaddr*)(&address), sizeof(address));
listen(fd, 100);
我想以原子方式创建具有特定权限的 Unix Domain Socket 文件,例如:0777
. 该手册没有说明有关套接字文件权限的umask
任何内容。即使,如果umask
确实影响套接字文件,那么它也不是一种原子方式 - 在多线程程序中。
我希望,有一种方法可以在不使用umask()
调用同步的情况下实现我的目标。