C语言目录操作

本文介绍了C语言中如何进行目录操作,包括获取当前工作目录、切换工作目录、创建和删除目录,以及读取目录中的文件列表。通过示例代码详细讲解了getcwd、chdir、mkdir、rmdir、opendir、readdir和closedir等函数的使用,并提供了一个递归遍历目录的示例。最后给出了课后作业,帮助读者巩固所学知识。
摘要由CSDN通过智能技术生成


目录的操作不论是在嵌入式还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,本章节主要是讨论在Linux系统下目录的一系列操作,以我的个人经验,创建目录和列出目录中的文件这两个功能用得最多。

一、获取当前工作目录

在shell中我们可以直接输入命令pwd来显示当前的工作目录,在C程序中调用getcwd函数可以获取当前的工作目录。函数声明:

char * getcwd(char * buf,size_t size);

getcwd函数把当前工作目录存入buf中,如果目录名超出了参数size长度,函数返回NULL,如果成功,返回buf。例如:

  char strpwd[301];
  memset(strpwd,0,sizeof(strpwd))
  getcwd(strpwd,300);
  printf("当前目录是:%s\n",strpwd);

二、切换工作目录

函数声明:

int chdir(const char *path);

就像我们在shell中使用cd命令切换目录一样,在C程序中使用chdir函数来改变工作目录。

返回值:0-切换成功;非0-失败。

三、目录的创建和删除

在shell中可以通过mkdir/rmdir命令来创建/删除目录,C程序中用mkdir/rmdir函数来创建/删除目录。

创建目录函数的声明:

int mkdir(const char *pathname, mode_t mode);

mode的含义将按open系统调用的O_CREAT选项中的有关定义设置,当然,它还要服从umask的设置况,是不是看不明白?那先固定填0755,注意,0不要省略哦,它表示八进制。 例如:

mkdir("/tmp/aaa",0755);   // 创建/tmp/aaa目录

删除目录函数的声明:

int rmdir(const char *pathname);

四、获取目录中的文件列表

在实际开发中,文件是存放在目录中的,在处理文件之前,必须先知道目录中有哪些文件,所以要获取目录中的文件列表。涉及到的库函数如下:

1、包含头文件

#<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值