1.目录文件的操作:
1. mkdir
int mkdir(const char *pathname, mode_t mode);
功能: 创建目录
参数:pathname:目录文件的路径
mode:目录文件的权限
返回值: 成功返回0 失败返回-1
注意:
1.r 决定是否目录下可以查看其余文件信息
2.w 决定目录下的文件是否能够新建
3.x 决定目录文件是否能够进入
2.rmdir
int rmdir(const char *pathname);
功能: 删除空目录文件
参数: pathname: 目录文件的路径
返回值: 成功返回0 失败返回-1
3.getcwd
char *getcwd(char *buf, size_t size);
功能: 获得当前工作目录的绝对路径
参数:
buf:存放路径空间首地址
size:最大存放字符的长度
返回值:
成功返回存放路径字符串空间首地址
失败返回NULL
4.chdir
int chdir(const char *path);
功能: 切换程序当前的工作路径
参数: path:目的路径
返回值:成功返回0 失败返回-1
5.chmod
chmod 0777 filename
chmod 0664 filename
chmod +/-r/w/x filename
int chmod(const char *pathname, mode_t mode);
功能: 修改文件权限
参数: pathname:文件路径
mode:权限值 0777 0664
返回值:成功返回0 失败返回-1
2.目录文件的读取:
1.操作方法: 打开目录 读取目录项 关闭目录
2.函数接口:
1.opendir
DIR *opendir(const char *name);
功能: 打开目录
参数: name:目录文件路径
返回值: 成功返回目录流指针
失败返回NULL
2.closedir
int closedir(DIR *dirp);
功能: 关闭目录流指针
参数: dirp:目录流指针
返回值: 成功返回0 失败返回-1
3.readdir
struct dirent *readdir(DIR *dirp);
功能: 读取目录项
参数: dirp:目录流指针
返回值: 成功返回目录项指针
失败返回NULL
读到末尾返回NULL
3.链接文件:
1.软链接(符号链接)
ln -s 要链接向的文件名 软链接文件名
ln -s b.txt a.txt
a.txt -> b.txt
通过文件名进行链接
普通文件:
文件名 -> inode -> 数据块
软链接:
软连接文件名 -> inode -> 数据块 -> 链接向的文件名 -> inode -> 数据块
int symlink(const char *target, const char *linkpath);
功能:
创建一个linkpath的软连接文件,里面存放target字符串
参数:
target:链接向的文件名
linkpath:软链接文件名
返回值:
成功返回0
失败返回-1
ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
功能:
读取软链接文件本身内容
参数:
path:软链接文件名
buf:存放软链接文件内容的缓冲区
bufsize:缓冲区的大小
返回值:
成功返回读取的字节数
失败返回-1
2.硬链接
ln 要链接的文件名 硬链接文件名
通过在磁盘中存放的inode节点进行链接
删除文件链接关系断开
link
int link(const char *oldpath, const char *newpath);
功能:
创建一个newpath的硬链接文件
参数:
oldpath:要链接的文件名
newpath:硬链接文件名
返回值:
成功返回0
失败返回-1
unlink
int unlink(const char *pathname);
功能:
删除链接文件名,并让硬链接个数-1 ,如果一个磁盘空间硬链接个数为0,需要回收磁盘空间
参数:
pathname:链接文件名
返回值:
成功返回0
失败返回-1
4.stat和lstat
int lstat(const char *pathname, struct stat *statbuf);
功能:
获得pathname对应文件的详细信息
参数:
pathname:文件路径
statbuf:存放文件详细信息空间的首地址
返回值:
成功返回0
失败返回-1