一、工作目录
1.读取工作目录
#include<unistd.h>
char *getcwd(char *buf, size_t size);
char *getwd(char *pathname);
getcwd获取当前工作目录的绝对路径,如果buf不为NULL,则将些绝对路径存入buf所指的内存空间;size为buf的长度,否则函数将自己开辟空间,size无效。函数成功时返回指向存储路径的指针,失败时返回NULL;
getwd将当前工作目录绝对路径复制到pathname所指的内存空间中,要求当前工作目录的最大长度小于PATH_MAX,成功时返回在一个指向该字串的指针,否则返回NULL;
2.更改工作目录
#include<unistd.h>
int chdir(const char *path);
int fchdir(int filedes);
chdir将path所指向的目录更改为当前目录,fchdir将fides所以的目录设置为当前目录,调用函数的进程对设置的工作目录必需有执行权限;函数成功时设置目录并返回0,否则返回-1;
二、目录的创建和删除
1.目录的创建
#include<unistd.h>
int mkdir(const char *path, modt_t mode);
int rmdir(const char *path);
这两相函数成功时返回0,否则返回-1;
三、目录的读取
#include <dirent.h>
DIR *opendir(const char *dirname);
struct dirent *readdir(DIR *dirp);
int closedir(DIR *dirp);
opendir打开目录文件dirname,返回一个目录流(类似于文件流FILE),函数失败时返回NULL;
readdir 读取当前目录项内容,存入dirp指向的结构体direct中,并移动指针至下一直目录项。不同的UNIX的目录项内容不同,但都包括以下两项:
ino_t d_ino //文件对应的节点编号
chard_name[] //文件名称,以字符'/0'结束。
readdr成功时返回dirp的值,目录读取完毕或出错时返回NULL
closedir关闭目录,释放DIR结构,成功时返回0,否则返回-1;
四、目录的定位
#include <dirent.h>
void seekdir(DIR *dirp, long int loc);
void rewinddir(DIR *dirp);
void int telldir(DIR *dirp);
在标准文件库编程和低级文件编程中,我们可以任意定位文件流,但在目录定位里则不可以。函数seekdir虽然可以定位到loc,但loc的值不可以任意设定,它必需是前面对同一目录流dirp调用函telldir的返回值之一。
telldir返回目录流当前位置,我们可以根据这个返回值,填充loc,从而从新访问当前目录。
rewinddir重置目录流到开始位置.
程序访问unix目录
最新推荐文章于 2021-05-25 17:41:34 发布