程序访问unix目录

一、工作目录

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重置目录流到开始位置.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值