gpt4 book ai didi

c - Accept4 中的声明 {sa_family=AF_UNIX} 和 [110->2] 意味着什么?

转载 作者:行者123 更新时间:2023-11-30 14:40:23 25 4
gpt4 key购买 nike

我在我的 Android 中做了一个 strace,得到了以下行

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 文件中都找不到 inode 2512219,所以我想知道是否有读/写套接字的进程现在已经死了,如果我能知道他的名字的话。)谢谢!

最佳答案

来自man accept4 :

int accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags);

accept4(8<UNIX:[246]>, {sa_family=AF_UNIX}, [110->2], 0) = 9<UNIX:[2512219]>
  • 8sockfd 值。来自 man:监听套接字,sockfd
  • 2468文件描述符的inode号
  • 指针addr指向的内存中存储的结构体struct sockaddr中的结构体成员.sa_family的值为 AF_UNIX
  • 来自 man:[addr] 填写通信层已知的对等套接字的地址
  • 110 输入值addrlen(socklen_t 整数存储在由addrlen 指针指向的内存中)。来自 man:调用者必须初始化它 [addrlen] 以包含 addr 指向的结构的大小(以字节为单位);
  • 函数返回后
  • 2 addrlen 的值。来自 man:将包含对等地址的实际大小
  • 0 标志标志。来自 man:如果 flags 为 0,则accept4() 与accept() 相同。
  • 9 返回文件描述符。来自 man:一个非负整数,它是接受套接字的文件描述符
  • 25122199 文件描述符的 inode 号

关于c - Accept4 中的声明 {sa_family=AF_UNIX} 和 [110->2] 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55567443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com