0

我的应用程序退出,因为它占用了太多文件描述符。所以我使用 gdb 来调试我的程序。当我使用 fflush 函数时,我发现文件描述符数量增加了。

例如:

//  before fflush  
// ll /proc/13593/fd/* | grep "send\.dat" | wc -l   
// 7 

     fflush(pFile);

//  after fflush  
// ll /proc/13593/fd/* | grep "send\.dat" | wc -l   
// 8

进程 ID 为 13593。变量 pFile 指向文件 send.dat 。

谁能告诉我原因?非常感谢。

4

1 回答 1

0

fflush不创建新的文件描述符。

您可能会继续重新打开该文件,但忘记关闭它。

于 2014-05-08T08:25:03.307 回答