是否存在将表示端点的'files'放置到Unix域套接字的约定?
我倾向于把它们放到/tmp/some-application-specific-subdir-name/
,但我想知道是否有更常见的地方。
背景是,POSIX并不清楚访问这些'文件'的最大路径长度:
sun_path的大小故意未定义。这是因为不同的实现使用不同的大小。例如,4.3 BSD使用108的大小,4.4 BSD使用104的大小。由于大多数实现源自BSD版本,因此大小通常在92到108之间。
应用程序不应假设sun_path的特定长度或假设它可以保存{_POSIX_PATH_MAX}个字节(256)。
因此,路径长度上的“限制”应该保留在应用程序的文件/路径名配置之外。
答案 0 :(得分:34)
答案 1 :(得分:6)
在Ubuntu上,netstat
命令在多个不同的位置显示UNIX域套接字。 JB提出的/var/run
中的一些,不管是少数;其中大部分都在@/tmp/…
(我相信@
指定抽象名称,这是特定于Linux的),以及其他一些在各种应用程序的特定位置。所以在实践中,最常见的位置似乎在/tmp
,至少在Ubuntu上,这是一个相当常见的平台。注意/tmp
位置在这里特别有意义,因为必须由每个bind
创建UDS并在之后删除(当套接字关闭时,或者应用程序退出时,或者应用程序启动时)下一次和下一次调用bind
之前)。
答案 2 :(得分:-2)
在Android中,您可以将其放在/dev/socket/