是否有一个约定将代表终点的“文件”放到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/