当前位置: 首页 > article >正文

Linux 文件操作相关函数整理

目录

一、标准 I/O 函数

二、文件 I/O 函数

三、目录操作函数

四、文件属性获取函数

五、时间相关函数

六、用户和组信息相关函数

七、链接文件相关函数

八、错误处理相关函数


一、标准 I/O 函数

  1. 文件打开与关闭:
    • FILE *fopen(const char *path, const char *mode):打开文件并建立流。
    • int fclose(FILE *fp):关闭文件流。
  2. 字符读写:
    • int fputc(int c, FILE *stream):向流中写入一个字符。
    • int fgetc(FILE *stream):从流中读取一个字符。
  3. 按行读写:
    • char *fgets(char *s, int size, FILE *stream):从流中读取一行文本数据。
    • int fputs(const char *s, FILE *stream):向流中写入一行数据。
  4. 二进制文件读写:
    • size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream):从流中读取二进制数据块。
    • size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream):向流中写入二进制数据块。
  5. 文件定位:
    • int fseek(FILE *stream, long offset, int whence):移动文件流中的指针。
    • long ftell(FILE *stream):获取文件流指针的位置。
    • void rewind(FILE *stream):将文件流指针重置到文件开头。
  6. 错误检测与清除:
    • int feof(FILE *stream):判断文件流是否到达结尾。
    • int ferror(FILE *stream):检测流是否出错。
    • void clearerr(FILE *stream):清除流的错误标记。

二、文件 I/O 函数

  1. 文件打开:
    • int open(const char *pathname, int flags, int mode):获得文件描述符以打开文件。
  2. 文件读写:
    • ssize_t write(int fd, const void *buf, size_t count):通过文件描述符写入数据。
    • ssize_t read(int fd, void *buf, size_t count):通过文件描述符读取数据。
  3. 文件定位:
    • off_t lseek(int fd, off_t offset, int whence):定位文件描述符所指文件的光标位置。
  4. 文件流指针与文件描述符转换:
    • int fileno(FILE *stream):从文件流指针获取文件描述符。
    • FILE *fdopen(int fd, const char *mode):将文件描述符转化为文件流指针。

三、目录操作函数

  1. DIR *opendir(const char *name):打开目录获取目录流指针。
  2. struct dirent *readdir(DIR *dirp):从目录流中读取文件信息。
  3. int closedir(DIR *dirp):关闭目录流对象。
  4. int chdir(const char *path):改变当前程序的工作路径。
  5. char *getcwd(char *buf, size_t size):获取当前工作路径。
  6. int mkdir(const char *pathname, mode_t mode):创建目录。
  7. int rmdir(const char *pathname):删除空目录文件。

四、文件属性获取函数

  1. int stat(const char *path, struct stat *buf):获取文件属性。

五、时间相关函数

  1. time_t time(time_t *t):获取自 1970 年以来的秒数。
  2. struct tm *localtime(const time_t *timep):将秒数转化为日历时间。
  3. char *ctime(const time_t *timep):将秒数转化为字符串时间。

六、用户和组信息相关函数

  1. struct passwd *getpwuid(uid_t uid):根据用户 ID 获取用户信息。
  2. struct passwd *getpwnam(const char *name):根据用户名获取用户信息。
  3. struct group *getgrgid(gid_t gid):根据组 ID 获取组信息。
  4. struct group *getgrnam(const char *name):根据组名获取组信息。

七、链接文件相关函数

  1. int symlink(const char *oldpath, const char *newpath):创建符号链接文件。
  2. int remove(const char *pathname):删除文件。
  3. int rename(const char *oldpath, const char *newpath):重命名文件或路径。
  4. int link(const char *oldpath, const char *newpath):创建硬链接文件。
  5. int truncate(const char *pathname, off_t length):截断文件。

八、错误处理相关函数

  1. void perror(const char *s):打印错误信息。
  2. char *strerror(int errnum):根据错误码获取错误信息。
  3. void error(int status, int errnum, const char *format,...):程序出错时打印原因并退出。

 


http://www.kler.cn/a/291511.html

相关文章:

  • 服务器数据恢复—热备盘未激活导致硬盘掉线的raid5阵列崩溃的数据恢复案例
  • 计算机网络中的数据包传输机制详解
  • Spring Boot中集成Redis与MySQL
  • 为何数据库推荐将IPv4地址存储为32位整数而非字符串?
  • 微知-DOCA ARGP参数模块的相关接口和用法(config单元、params单元,argp pipe line,回调)
  • 【计算机网络】水平触发与边缘触发有什么优缺点呢?
  • 基于django的在线音乐网站设计/基于python的音乐播放系统
  • Node.js模块系统
  • C#转java工具
  • 鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS
  • 【C++设计模式】(三)创建型模式:单例模式
  • 前端框架对比
  • 学习netty 从哪里开始
  • 【Java毕业设计】基于SpringBoot+Vue+uniapp的农产品商城系统
  • 【PyTorch常用库函数】torch.add():张量的加法操作
  • 算法训练营——day4螺旋矩阵
  • 数据结构---双向链表---循环链表---栈
  • 如何用pytorch进行图像分类
  • 测试基础|记一次CPU冲高的排查过程!
  • Lua 代码编码规范
  • mybatisplus使用OptimisticLockerInnerInterceptor实现版本号乐观锁
  • 七月刚入职字节跳动的测试开发面试题,附答案
  • SpringCloud Alibaba】(十三)学习 RocketMQ 消息队列
  • Linux内核编程(十五)网络设备驱动
  • Transforms的常见用法
  • ARM的寄存器组织