在哪里放置Unix域(AF_UNIX)套接字的端点(文件)?

是否有一个约定将代表终点的“文件”放到Unix域套接字中?

我倾向于把它们放在/tmp/some-application-specific-subdir-name/ ,但是我想知道是否有更常见的地方。

背景是, POSIX并不清楚访问这些“文件”的最大path长度:

sun_path的大小有意留下未定义。 这是因为不同的实现使用不同的大小。 例如,4.3 BSD使用108的大小,4.4 BSD使用104的大小。由于大多数实现来自BSD版本,所以大小通常在92到108之间。

应用程序不应假定sun_path的特定长度,或者假定它可以保存{_POSIX_PATH_MAX}个字节(256)。

因此,path长度上的这个“限制”应该被排除在应用程序的文件/path名称configuration之外。

FHS说: /var/run

在Ubuntu上, netstat命令在多个不同的地方显示了UNIX域套接字。 JB中提到的一些,不过在/var/run有一些, 他们大多数在@/tmp/… (我相信@指定抽象名称,这是特定于Linux),和其他一些在各种应用程序的特定位置。 所以在实践中,最常见的位置似乎在/tmp ,至少在Ubuntu上是一个相当常见的平台。 请注意, /tmp位置在这里特别有用,因为UDS必须由每个bind创建,并在之后被删除(当套接字关闭,或者应用程序退出时,或者应用程序下一次启动,下一次时调用bind )。

在Android中你可以把它放在/dev/socket/