Linux下目录操作

目录相关函数介绍

//改变目录或文件的访问权限

#include<sys/stat.h>

int chmod(const char* path,mode_t mode);//mode为八进制

 

//获取当前的工作路径

#include <unistd.h>

char *getcwd(char *buf,size_t size);//获取当前目录,相当与pwd命令,参数通常为(NULL,0);

 

说明:getcwd()函数:将当前的工作目录绝对路径复制到参数buf所指的内存空间,参数size为buf的空间大小. 在调用此函数时,

buf所指的内存空间要足够大,若工作目录绝对路径的字符串长度超过参数size大小,则回值NULL,errno的值则为ERANGE。

倘若参数buf为NULL,getcwd()会依参数size的大小自动配置内存(使用malloc()),如果参数size也为0,则getcwd()

会依工作目录绝对路径的字符串长度来决定所配置的内存大小,进程可以在使用完此字符串后自动利用free()来释放此空间。所以常用的形式:getcwd(NULL, 0);

 

//改变当前目录

int chdir (const char *path);//修改当前目录为参数指定的目录,即切换路径,相当与cd命令

//创建目录

#include <sys/stat.h>

#include <sys/types.h>

int mkdir(const char *pathname, mode_t mode);//mode为八进制

创建目录,mode是目录权限(最终要和~umask相与)

//rmdir 删除目录

#include <unistd.h>

int rmdir(const char *pathname);

 

//opendir/fdopendir  //打开目录

DIR是一个结构体,是一个内部结构,用来存储读取目录的相关信息。

#include <sys/types.h>

#include <dirent.h>

DIR *opendir(const char *name);//打开一个目录,返回目录流

DIR *fdopendir(int fd);

 

//readdir 读目录

#include <dirent.h>

struct dirent *readdir(DIR *dirp);//读取目录的一项信息,返回一条记录项,,DIR*指针指向下一条记录项。

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 supportedby all file system types */

char d_name[256]; /* filename */

};

readdir 每次返回一条记录项,,DIR*指针指向下一条记录项。

 

//rewinddir 重新定位到目录文件的头部

#include <sys/types.h>

#include <dirent.h>

void rewinddir(DIR *dirp);//重新定位到目录文件的头部

 

把目录指针恢复到目录的起始位置。

 

//telldir函数

#include <dirent.h>

long telldir(DIR *dirp);//函数返回值是为目录流的当前位置,表示目录文件距开头的偏移量。

 

//seekdir

#include <dirent.h>

void seekdir(DIR *dirp, long offset);

seekdir表示设置文件流指针位置。

 

//closedir 关闭目录流

#include <sys/types.h>

#include <dirent.h>

int closedir(DIR *dirp);//关闭目录文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值