IT技术互动交流平台

嵌入式 Linux系统编程(五)目录文件函数

作者:佚名  来源:IT165收集  发布日期:2016-07-18 20:35:24

Linux中目录也是文件,目录操作函数为标准IO库函数。主要函数如下:
#include
#include
 
DIR *opendir(const char *name);
DIR *fdopendir(int fd);
成功返回一个指向目录流的指针,失败返回NULL,并且设置errno全局变量。
#include
 
struct dirent *readdir(DIR *dirp);
成功返回一个指向目录 dirent结构的指针,如果到达目录流结尾或错误返回NULL。
        #include
 
int scandir(const char *dirp,//目录名
struct dirent ***namelist,//返回目录列表
int (*filter)(const struct dirent *),//过滤目录,NULL不过滤
int (*compar)(const struct dirent **,const struct dirent **));//排序返回目录,NULL不排序
    成功返回目录内文件的数量,失败返回-1。
目录文件信息结构体dirent:
struct dirent {
     ino_t          d_ino;       /* inode number */
     off_t          d_off;       /* offset to the next dirent */
     unsigned short d_reclen;    /* length of this record */
     unsigned char  d_type;      /* type of file; not supported
                                 by all file system types */
     char           d_name[256]; /* filename */
      };
遍历目录函数:
int traverse_dir(const char *path)
{  
    struct dirent **dent;
    unsigned int i = 0;
    i = scandir(path, &dent, NULL, NULL);
    while(*dent)
    {  
        printf("%s ", (*dent)->d_name);
        dent++;
    }  
    return 0;
}
 

Tag标签: 嵌入式   函数   文件  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规