(1)stat函数:显示文件的相关信息(类似于 ls -l的感觉)
头文件及函数原型:
函数参数:path:文件的路径,buf是指待写入的文件信息,fd:表示文件描述符;
stat,fstat,lstat三者的区别在于:fstat是系统调用函数,不可以移植,第一个参数为文件描述符,需要用open的返回值获得。其他两个的第一个参数均为文件的路径,三个函数的第二个参数均是一个结构体,用来表示文件的各种信息;另外lstat(带l的具不具备穿透性)不具有穿透性,即如果打开的文件是一个软连接(快捷方式),它不具备追踪到最终的文件功能。
返回值:成功(0),失败(-1);
结构体stat如下:
其中重要参数:st_mode代表着文件的权限和文件的类型,其结构如下:
(2)access函数:测试指定文件是否有某个权限
头文件及函数原型:
函数参数:pathname:文件的路劲,mode:权限类别,R_OK,W_OK,X_OK,F_OK(判断文件是否存在)
返回值:成功(0),失败(-1);
(3)chmod函数:修改文件的权限
函数头文件及函数原型:
参数:path/fd:文件的路径/文件描述符,mode:文件的权限,为一个八进制的数
返回值:成功(0),失败(-1);
(4)chown:改变文件所有者
函数头文件及函数原型:
参数:path/fd:文件的路径/文件描述符;owner/group:修改文件的所有者及所属组(所有者及所属组必须存在,可在/etc/passwd中查找所有的owner/group)
返回值:同上
(5)truncate函数:指定文件的大小,如果超过指定大小,则多余数据会被删除,可用作扩展(扩展后不用写数据,区别于lseek)
函数头文件及原型:
参数:path/fd:文件的路径/文件描述符,length为指定的长度;
返回值:同上;
(6)link函数:创建一个硬连接;
函数原型及头文件:
函数参数:新的文件路径,旧的文件路径,指向投一个inode;
返回值:同上;
(7)syslink:创建软连接
函数原型及头文件:
函数参数:新的文件路径,旧的文件路径;
返回值:同上;
(8) readlink:读取软链接的文件名而非内容
函数原型及头文件:
函数参数:path:文件的路径,buf:软连接的文件名 ,bufsiz:软连接的长度;
返回值;成功(软连接的长度),失败(-1);
(9)unlink:删除一个文件目录的链接数(记得目标必须要有执行权限才能进入目录)
函数头文件及原型:
函数参数:文件或目录的路径
返回值:同上
使用注意事项:如果是软连接,则删除软连接;如果是硬连接,则连接数-1;
如果硬连接数为0,并且已经打开这个文件,且有文件描述符,则当该进程关闭该文件的时候,内核才真正删除这个文件;可以利用这个属性创建临时文件(类似缓存的概念,先open/create一个文件,然后立马unlink)
(10)rename:文件重命名
函数头文件及原型:
函数参数:旧文件路径,新文件路径
返回值:同上
功能介绍:摘录https://blog.csdn.net/sprintfwater/article/details/45336615的翻译: