我写了 LD_PRELOAD 来拦截 accept() 函数。我有一个问题,因为有时接受函数给了我相同的文件描述符。我只为一个进程加载这个预加载
我的代码:
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
{
int fd;
fd = (*realAccept)(sockfd, addr, addrlen);
if(fd >= 0)
{
printf("file descriptor: %d\n", fd);
...
return fd;
}
}
int close(int fd)
{
printf("close decriptor: %d\n", fd);
return (*realClose)(fd);
}
输出是:
文件描述符:213
文件描述符:213 <-- 为什么?
...
关闭描述符:213
为什么接受函数返回相同的文件描述符?
谢谢!