在应用程序退出之前是否应关闭socketpair结束?

时间:2017-04-06 08:10:56

标签: c valgrind socketpair

我有一个应用程序,想知道当我使用valgrind -track-fds=yes ./app

时我是否泄漏文件描述符

我明白了:

 ==18807== FILE DESCRIPTORS: 4 open at exit.
 ==18807== Open AF_UNIX socket 20: <unknown>

这被视为文件描述符泄漏吗?当应用程序终止或者Linux内核处理它时,是否应该关闭socketPair?

2 个答案:

答案 0 :(得分:2)

通常只有无界资源丢失被视为泄漏。

如果您在循环中打开文件但从未关闭它,则会发生泄漏。泄漏是不好的,因为你的程序将耗尽它泄漏的任何资源。

如果您打开一次文件,那不是泄漏,特别是如果您需要它到程序的最后。它无论如何都会被内核自动关闭。

最好关闭这些文件,如果只是为了保持你的valgrind日志清洁。

答案 1 :(得分:1)

不,它不是因为文件会自动关闭,但在退出之前fclose打开文件是一个很好的做法。