miwaiwai

导航

统计

C语言学习

文件系统:

  1.inode

    本质是结构体,

    存储文件属性信息:

        1.权限

        2.类型

        3.大小

        4.时间

        5.用户

        6.盘块位置

 

  2.dentry

stat函数:

  int stat(const char *path,struct stat *buf)

  参数:

    path:文件路径

    buf:(穿书参数)存放文件的路径

  返回值:

    成功:0

    失败:-1 errno

通过stat函数获取文件大小和时间

复制代码
 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 #include <sys/stat.h>
 5 int main(int argc,char *argv[]){
 6 struct stat sbuf;
 7 int ret=stat(argv[1],&sbuf);
 8 if(ret==-1){
 9     perror("stat error");
10     exit(1);
11 
12 }
13 printf("file size:%ld\n",sbuf.st_atime);
14 printf("file size:%ld\n",sbuf.st_size);
15 return 0;
16 }
复制代码

 

通过stat函数获取文件类型,遍历目录,下面这个例子,在man配置里面有举例

复制代码
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 #include<unistd.h>
 5 #include<pthread.h>
 6 #include<dirent.h>
 7 int main (int argc, char *argv[]) {
 8 
 9     DIR *dp;
10     struct dirent *sdp;
11     if (argc < 2) {
12         printf("usage error!");
13         exit (1);
14     }
15     dp = opendir (argv[1]);
16     if (dp == NULL) {
17 
18         perror ("opendir error");
19         exit (1);
20     }
21     while ((sdp = readdir (dp)) != NULL) {
22         if ((strcmp (sdp->d_name, ".") == 0) || (strcmp (sdp->d_name, "..") == 0)) {
23             continue;
24         }
25         printf("%s\t", sdp->d_name);
26     }
27     printf("\n");
28     closedir (dp);
29 
30     return 0;
31 }
复制代码

 

目录操作函数:

  opendir()

  closedir()

  readdir()

递归遍历目录:ls -R .c

  1.判断命令行参数,获取用户要查询的目录名. argv[1]

    argc==1 ---> ./

  2.判断用户指定的是否是目录. stat S_IDDIR()---->封装函数isFile

  3.读目录

    opendir(dir)

    while(readdir()){

      普通文件,直接打印

      目录:拼接目录访问绝对路径.sprintf (path,""%s%s"",dir,d_name)

        递归调用自己.--->opendir readdir closedir

    }

    closedir()

 

posted on   米歪歪  阅读(30)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示