我有一个应用程序,想知道当我使用valgrind -track-fds=yes ./app
我明白了:
==18807== FILE DESCRIPTORS: 4 open at exit.
==18807== Open AF_UNIX socket 20: <unknown>
这被视为文件描述符泄漏吗?当应用程序终止或者Linux内核处理它时,是否应该关闭socketPair?
答案 0 :(得分:2)
通常只有无界资源丢失被视为泄漏。
如果您在循环中打开文件但从未关闭它,则会发生泄漏。泄漏是不好的,因为你的程序将耗尽它泄漏的任何资源。
如果您打开一次文件,那不是泄漏,特别是如果您需要它到程序的最后。它无论如何都会被内核自动关闭。
最好关闭这些文件,如果只是为了保持你的valgrind日志清洁。
答案 1 :(得分:1)
不,它不是因为文件会自动关闭,但在退出之前fclose
打开文件是一个很好的做法。