Linux 之目录操作

在这里插入图片描述

(1)打开/关闭目录文件

#include <dirent.h>
DIR* opendir(const char* dirname);
int closedir(DIR* dirp);

opendir()函数用于打开一个目录文件,其中dirname为目录路径,执行成功,返回一个目录流指针,失败返回NULL
closedir()函数用于关闭指定的目录流,成功返回0,失败返回-1

(2)读取目录内容

#include <dirent.h>
struct dirent* readdir(DIR* dirp);
int readdir_r(DIR* dirp,struct dirent* entry,struct dirent ** result);

其中struct dirent定义如下:

// from dirent.h
struct dirent
{
	long ino;                    //目录中某文件的innode值
	_kerbel_off_t d_off;         // 从目录开始到当前目录条的距离
	unsigned short d_reclen;     // 目录中某文件名的长度
	char d_name[256];            //  目录中某文件名
}

readdir()函数执行成功则返回一个指向struct dirent的结构体,,如果到达目录结尾,或失败,则范湖NULL。
readdir_r()函数在多线程编程中相对安全,且此函数第一个参数为打开的目录指针,它将初始化第二个参数引用的struct dirent结构,以表示第一个参数所引用的目录流的当前位置,并将所在位置的信息存储在第三个参数中。函数执行成功,将返回目录流中的一个文件信息,到达目录尾在返回0,执行失败返回-1。

(3)定位目录位置

long int telldir(DIR* dirp);             //返回目录流的当前位置
void seekdir(DIR* dirp,long int loc);   // 设置下一个readdir()位置
void rewinddir(DIR* dirp);              //将目录流的位置重置到目录的开头

(4)当前工作路径操作

char* getcwd(char* buf,size_t size); //获取当前工作路径的绝对路径到buf中,并返回buf
int chdir(const char* path);//修改当前进程的环境变量的当前工作路径,成功返回0,失败返回-1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chiang木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值