目录IO
一、目录文件的操作函数接口
需要注意:目录文件的权限mode有
1.r 决定是否目录下可以查看其余文件信息
2.w 决定目录下的文件是否能够新建
3.x 决定目录文件是否能够进入
二、目录文件的读取
1、操作方法:
1.打开目录
2.读取目录项
3.关闭目录
2、函数接口
链接IO
一、软链接(符号链接)
1、使用方法:ln -s 要链接向的文件名 软链接文件名
示例: ln -s b.txt a.txt
a.txt -> b.txt
通过文件名进行链接
2、函数接口
1.symlink
格式:
int symlink(const char *target, const char *linkpath);
功能:
创建一个linkpath的软连接文件,里面存放target字符串
参数:
target:链接向的文件名
linkpath:软链接文件名
返回值:
成功返回0
失败返回-1
2.readlink
格式:
ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
功能:
读取软链接文件本身内容
参数:
path:软链接文件名
buf:存放软链接文件内容的缓冲区
bufsize:缓冲区的大小
返回值:
成功返回读取的字节数
失败返回-1
二、硬链接
1、使用场景:ln 要链接的文件名 硬链接文件名
通过在磁盘中存放的inode节点进行链接
删除文件链接关系断开
2、函数接口
1.link
格式:
int link(const char *oldpath, const char *newpath);
功能:
创建一个newpath的硬链接文件
参数:
oldpath:要链接的文件名
newpath:硬链接文件名
返回值:
成功返回0
失败返回-1
2.unlink
格式:
int unlink(const char *pathname);
功能:
删除链接文件名,并让硬链接个数-1 ,如果一个磁盘空间硬链接个数为0,需要回收磁盘空间
参数:
pathname:链接文件名
返回值:
成功返回0
失败返回-1
3、其他函数接口:stat和lstat
int lstat(const char *pathname, struct stat *statbuf);
功能:
获得pathname对应文件的详细信息
参数:
pathname:文件路径
statbuf:存放文件详细信息空间的首地址
返回值:
成功返回0
失败返回-1