在Linux中,有没有使用AF_LOCAL(unix域套接字)在进程(IPC)之间进行通信而不使用文件的示例?(在只读文件系统上)
我必须使用Unix域套接字,但是我在系统上没有文件创建/写入访问权限。
先感谢您。
您可以使用“抽象套接字地址”创建Unix域套接字。只需sun_path
将sockaddr_un
您传递的字符串的第一个字符bind
设为即可'\0'
。在此初始NUL之后,将一个字符串写入其余部分,sun_path
并使用NUL UNIX_PATH_MAX
(或其他任何东西)将其填充。
以这种方式创建的套接字将没有任何文件系统条目,而是将放置在系统范围内的不可见套接字名称空间中。套接字名称不是以空值结尾的字符串;它是一个以NUL开头的UNIX_PATH_MAX长度字符串,任何其他NUL都没有特殊意义。因此,填充该名称至关重要,否则您将在该名称中放入额外的未初始化的内存垃圾,并产生意外的结果。按照惯例,通常使用NUL护垫来完成此操作,但这取决于您。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句