文件和目录函数

相关函数: stat

头文件   #include <sys/stat.h>

           #include <unistd.h>

函数原型: int stat(const char *path, struct stat *buf);

函数说明: stat用来将参数path指向的文件的属性复制到参数buf所指向的结构中

           类型struct stat定义如下:

           struct stat

{

                dev_t         st_dev;      // 文件的设备编号

                ino_t         st_ino;      //  文件的i-node

                mode_t       st_mode;    //  文件的类型和访问权限

                nlink_t       st_nlink;     //  文件的硬链接数

                uid_t         st_uid;      //  文件所有者的用户识别码

                gid_t         st_gid;      //  文件所属组的识别码

                dev_t         st_rdev;     //  若文件为设备文件,则为设备编号

                off_t          st_size;     //  文件大小,以字节计算

                unsigned long  st_blksize;   //  文件系统的I/O缓冲区大小

                unsigned long  st_blocks;   //   占用文件块的个数

                time_t        st_atime;    //   文件最近一次被存取或执行的时间

                time_t        st_mtime;   //   文件最后一次被修改的时间

                time_t        st_ctime;    //   i-node最近一次被修改的时间

           };

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: fstat

头文件   #include <sys/stat.h>

           #include <unistd.h>

函数原型: int fstat(int fd, struct stat *buf);

函数说明:  fstat用来将参数fd指向的文件的属性复制到参数buf所指向的结构中。fstat

stat作用完全一样,区别在于通过文件描述符而不是路径来指定文件

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: lstat

头文件   #include <sys/stat.h>

           #include <unistd.h>

函数原型: int lstat(const char *path, struct stat *buf);

函数说明: lstatstat作用相同,都是取得指定文件的属性。差别在于,当目标文件为符号链接时,lstat会返回该链接本身的属性

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: link

头文件   #include <unistd.h>

函数原型: int link(const char *oldpath, const char *newpath);

函数说明: link用参数newpath指定的名称创建一个新的硬链接到参数oldpath所指定的已存在文件

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: symlink

头文件   #include <unistd.h>

函数原型: int symlink(const char *oldpath, const char *newpath);

函数说明: symlink用参数newpath指定的名称创建一个新的符号链接到参数oldpath所指定的文件,该文件不一定要存在

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: chmod

头文件   #include <sys/types.h>

           #include <sys/stat.h>

函数原型: int chmod(const char *path, mode_t mode);

函数说明: chmod会按照参数mode指定的权限来修改参数path指向的文件

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: truncate

头文件   #include <unistd.h>

函数原型: int truncate(const char *path, off_t length);

函数说明: truncate将参数path指定的文件大小修改为参数length指定的大小。若原来文件大小超出length,则超出的部分被删去

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: rename

头文件   #include <stdio.h>

函数原型: int rename(const char *oldpath, const char *newpath);

函数说明: rename将参数oldpath所指定的文件名改成参数newpath所指定的文件名称

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: remove

头文件   #include <stdio.h>

函数原型: int remove(const char *path);

函数说明: remove删除参数path所指定的文件

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: chdir

头文件   #include <unistd.h>

函数原型: int chdir(const char *path);

函数说明: chdir将当前的工作目录改变到参数path指定的路径

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: mkdir

头文件   #include <sys/stat.h>

函数原型: int mkdir(const char *filename, mode_t mode);

函数说明: mkdir创建以参数filename命名的目录,参数mode表示新目录的权限

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: opendir

头文件   #include <sys/types.h>

           #include <dirent.h>

函数原型: DIR *opendir(const char *name);

函数说明: opendir打开参数name指定的目录,并返回DIR *形式的目录流

返回值   执行成功返回打开的目录流,失败返回NULL,错误代码存于errno

相关函数: readdir

头文件   #include <sys/types.h>

           #include <dirent.h>

函数原型: struct dirent *readdir(DIR *dir);

函数说明: readdir返回参数dir所指向的目录流的下一个entry,结构dirent定义如下:

           struct dirent

           {

               __ino_t   d_ino;        //  此条目的inode

               __off_t   d_off;        //  从目录文件开始到该条目的位移

               unsigned short int   d_reclen;    //  d_name的长度,不包含NULL

               unsigned char   d_type;     //  d_name的文件类型

               char    d_name[256];      //  文件名

           }

返回值   执行成功返回下一个条目,失败或读到目录文件末尾返回NULL

相关函数: closedir

头文件   #include <sys/types.h>

           #include <dirent.h>

函数原型: int closedir(DIR *dir);

函数说明: closedir关闭参数dir指向的目录流

返回值   执行成功返回0,失败返回-1,错误代码存于errno

相关函数: getcwd

头文件   #include <unistd.h>

函数原型: char *getcwd(char *buf, size_t size);

函数说明: getcwd将当前的工作目录绝对路径复制到参数buf所指向的内存空间。参数sizebuf空间的大小

返回值   执行成功返回buf的值,失败返回NULL,错误代码存于errno

posted @   cnetsa  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示