linux-C实现查看目录中所有文件

来源:互联网 发布:windows to go win8.1 编辑:程序博客网 时间:2024/06/07 13:42

   买了本Advanced Programming in the UNIX Environment,感觉不错,不愧被称为圣经,最近一段时间可能要看它了,写了地一个程序,查看目录的所有文件

  

#include<stdio.h>#include<dirent.h>int main(int argc, char *argv[]){    DIR *dir;    struct dirent *dirp;    if(argc != 2)    {        printf("no directory name\n");        return;    }    if( (dir = opendir(argv[1])) == NULL)    {        printf("can't open %s\n", argv[1]);        return;    }    while( (dirp = readdir(dir)) != NULL)        printf("%s\n", dirp->d_name);    return 0;}
运行结果


首先说说DIR这一结构体,以下为DIR结构体的定义:

/*1. struct __dirstream  2. {  3.     void *__fd;   4.     char *__data;   5.     int __entry_data;   6.     char *__ptr;   7.     int __entry_ptr;   8.     size_t __allocation;   9.     size_t __size;   10.     __libc_lock_define (, __lock)   11.};  12.  13. typedef struct __dirstream DIR; */

再看 dirent结构

/*1. struct dirent   2. {   3.   long d_ino; //inode number 索引节点号   4.      5.         off_t d_off; // offset to this dirent 在目录文件中的偏移 6.      7.         unsigned short d_reclen; //length of this d_name 文件名长  8.      9.         unsigned char d_type; // the type of d_name 文件类型 10.      11.       char d_name [NAME_MAX+1]; //file name (null-terminated) 文件名,最长255字符 12. }   */
其他的细节待以后看书再补全


原创粉丝点击