一、链接文件的操作
1、link
oldpath 已存在的文件名.
newpath 要新建的链接文件名.
返回值 若成功为0;若出错为- 1,错误值记录在errno.
注意: 新的链接文件newpath和已存在的文件oldpath应在同一个文件系统中。如果新的链接文件newpath已经存在,已存在的文件不会被覆盖。
2、symlink
创建符号链接文件。
oldpath 已存在的文件名.
newpath 要新建的符号链接文件名.
返回值 若成功为0;若出错为- 1,错误值记录在errno.
注意: 如果新的链接文件newpath已经存在,已存在的文件不会被覆盖。可存在悬浮链接。符号链接文件的权限和原文件的权限是无关的。
3、readlink
读取符号链接所指向的目标文件.
path 符号链接文件名.
buf 用于存储获取到的信息(所指向的目标文件名)的缓冲区.
bufsize 缓冲区大小.
返回值 若成功为实际写入缓冲区的字节数;若出错为-1,错误值记 录在errno.
4、unlink
从文件系统中删除一个文件名。
pathname 要删除的文件的文件名.
return value 若成功为0;若出错为-1,错误值记录在errno.
注意:
对于硬链接,如果被删除的文件名是引用一个文件的最后一个文件名,该文件最后将被删除。
对于符号链接,仅该符号链接被删除,而不会影响其指向的目标文件。
对于套接字(socket)、管道(fifo)或设备文件,文件名会被删除,但是已打开该文件的进程仍可继续使用它.
示例
5、mkdir
创建目录文件.
pathname 新创建的目录文件名.
mode 权限, 同open函数的[struct stat的st_mode成员].
返回值 若成功为0;若出错为-1,错误值记录在errno.
注意: 新目录文件的所有者是当前进程的有效用户。文件的所属组是当前进程的有效组或父目录的所属组(与文件系统的类型和挂载方式有关)。
6、rmdir
删除目录文件.
pathname 要删除的目录文件名.
返回值 若成功为0;若出错为-1,错误值记录在errno.
注意: 只能删除空目录.
7、opendir
打开目录文件.
name 要打开的目录文件名.
返回值 若成功为指向目录文件的结构指针;若出错为NULL,错误值记 录在errno.
注意:
opendir不是系统调用。
执行成功返回一个目录流,该流定位在目录块的第一项。
8、closedir
dirp 已打开的目录流.
返回值 若成功为0;若出错为-1,错误值记录在errno.
9、readdir
读取目录文件.
dirp 已打开的目录流.
返回值 若成功为下一个目录项的指针;若已读取到目录流末尾则返回 NULL且errno的值不变;若出错为NULL,错误值记录在 errno.
示例
二、设备文件