int main() { int fd1, fd2; fd1 = open("foo.txt", O_RDONLY, 0); printf("%d\n", fd1); close(fd1); fd2 = open("baz.txt", O_RDONLY, 0); printf("%d\n", fd2); return 0; }
那是因为你用了动态链接库。比如libc.so.6 程序打开动态链接库自然要占用文件描述符了。你可以用strace启动程序看日志
如果非要追根问底,去看下open的内核实现吧,那才是根本!
23,124
社区成员
74,508
社区内容
加载中
试试用AI创作助手写篇文章吧