我在android中做了一个跟踪,得到了以下一行
accept4(8<UNIX:[246]>, {sa_family=AF_UNIX}, [110->2], 0) = 9<UNIX:[2512219]>
我不明白{sa_family = AF_UNIX}的作用(它应该是sockaddr指针,但是在路径和内存地址方面它指向何处?),我想知道110和2的含义和为什么110指向2以及此操作返回的确切信息。
(我真的很好奇这样创建的套接字的同位体,因为我无法在任何proc / PID / fd文件中找到索引节点2512219,所以我想知道是否已对套接字进行读/写操作现在已经死了,如果我能知道他的名字。)谢谢!
答案 0 :(得分:1)
来自man accept4:
int accept4(int sockfd,struct sockaddr * addr, socklen_t * addrlen,int标志);
accept4(8<UNIX:[246]>, {sa_family=AF_UNIX}, [110->2], 0) = 9<UNIX:[2512219]>
8
是sockfd
的值。来自人:the listening socket, sockfd
246
是8
文件描述符的索引节点编号.sa_family
所指向的存储器中存储的结构struct sockaddr
中的结构成员addr
的值为AF_UNIX
[addr] It is filled in with the address of the peer socket, as known to the communications layer
。110
输入值addrlen
(socklen_t
指针指向的存储器中存储的addrlen
整数)。来自人:the caller must initialize it [addrlen] to contain the size (in bytes) of the structure pointed to by addr;
2
的值为addrlen
。来自人:will contain the actual size of the peer address
。0
标志flags
。来自人:If flags is 0, then accept4() is the same as accept().
9
返回了文件描述符。来自人:a nonnegative integer that is a file descriptor for the accepted socket
2512219
个文件描述符的9
索引节点编号