linux文件操作相关函数

(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的翻译:

           

猜你喜欢

转载自blog.csdn.net/xx18030637774/article/details/81937497