【发布时间】:2016-01-09 19:37:19
【问题描述】:
readdir 返回一个指向struct dirent 的指针,我测试过存储在两个不同指针中的两次对readdir 的调用是否修改了第一个指针内容,它没有。
所以我猜 readdir 分配了一些内存,对吗?
如果是这样,它应该被释放,这是我以前从未做过的事情......
【问题讨论】:
-
手册页是怎么说的?
-
The data returned by readdir() may be overwritten by subsequent calls to readdir() for the same directory stream.,就像我在帖子中所说的那样,在两次调用之后它并没有改变第一个结构。是不是因为它有一个条目缓冲区,并且在一定数量的调用后,它会将下一部分的其余部分加载到缓冲区中? -
上面写着“可能是”。它还说“不要释放它。”我想你先打电话给
opendir,然后根据答案使用closedir?