使用 AF_UNIX 成功调用 bind(2) 不会生成套接字文件

Successfull call to bind(2) with AF_UNIX does not generate a socket file

我有一个应该生成套接字的程序。使用 strace 我得到以下跟踪行

bind(6, {sa_family=AF_UNIX, sun_path="/home/me/x"}, 110) = 0

然而,“/home/me/x”并不存在,我也没有看到取消链接的调用。可能会发生,即使调用成功也没有创建文件 (=0) ?

免责声明:有问题的程序是 https://github.com/nixcloud/ip2unix 所以它通过替换套接字做了一些讨厌的事情。但是,绑定调用成功并且程序正常运行,所以我错过了什么。 ?现在不应该所有情况下的文件都存在吗?

其实我觉得不可能。我没有考虑的是 strace 不遵循 children,所以在有用的提示后 strace -f 显示了取消链接调用。我想 inotifywait 也会透露套接字文件实际上是在取消链接之前创建的...