当前位置:  技术问答>linux和unix

关于readdir和stat两个函数的疑问

    来源: 互联网  发布时间:2017-05-10

    本文导语:  当我们使用readdir时一般会定义一个DIR*和dirent*,一个相当于文件描述符,另一个用来读取目录结构体内容 像这样 DIR*pDIR=opendir(....); struct dirent*pSD; while((pSD=readdir(pDIR)!=NULL).... ... closedir(pDIR); 当我们使用stat时一般会定...

当我们使用readdir时一般会定义一个DIR*和dirent*,一个相当于文件描述符,另一个用来读取目录结构体内容
像这样

DIR*pDIR=opendir(....);
struct dirent*pSD;
while((pSD=readdir(pDIR)!=NULL)....
...
closedir(pDIR);

当我们使用stat时一般会定义一个stat结构体

struct stat sb;
if(stat(...,&sb)!=0)...;


发现dirent结构体的内存不是自己申请的,也不需要释放

/*
On  success,  readdir() returns a pointer to a dirent structure.  (This
       structure may be statically allocated; do not attempt to  free(3)  it.)
*/

而stat结构体是需要自己分配结构体空间的,像这样的结构体unix接口里还有很多,而且大部分用指针以便带回返回值。
有没有一种特定习惯能区分哪些需要自己分配空间,哪些是系统分配?
(比如系统分配的都需要调用close*???)

|

很抱歉没有,不过若是系统分配的,基本都要注意是否是线程安全的。

|
目前还没发现什么规律。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问readdir读取顺序是什么
  • 求教vfs_readdir的问题
  • readdir
  • opendir,readdir 的问题
  • 循环执行readdir,只执行1次,求解,谢谢
  • 在ARM上用opendir、readdir统计文件总数速度超慢啊
  • 关于readdir读出时的排序问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,