函数字典 · 文件IO · 标准IO

open:打开一个文件或者创建一个新文件

/*
 * 函数名称: open
 * 函数声明: int open(const char *path, int flags, mode_t mode);
 * 函数描述: 打开一个文件或者创建一个新文件。此函数使用指定的路径和标志打开文件,如果文件不存在则创建新文件。
 * 参数:
 *     - path: 文件路径
 *     - flags: 打开文件的模式和标志
 *     - mode: 新创建文件的权限(仅当flags中包含O_CREAT标志时生效)
 *
 * 返回值:
 *     成功时返回文件描述符,出错时返回-1,并设置errno
 *
 * 使用示例:
 *     int fd = open("test.txt", O_RDONLY);
 *     if (fd == -1) {
 *         perror("open");
 *     }
 */

close:关闭一个文件描述符

/*
 * 函数名称: close
 * 函数声明: int close(int fd);
 * 函数描述: 关闭一个打开的文件描述符。
 * 参数:
 *     - fd: 文件描述符
 *
 * 返回值:
 *     成功时返回0,出错时返回-1,并设置errno
 *
 * 使用示例:
 *     int fd = open("test.txt", O_RDONLY);
 *     // 进行文件操作...
 *     int result = close(fd);
 *     if (result == -1) {
 *         perror("close");
 *     }
 */

perror:打印错误消息

/*
 * 函数名称: perror
 * 函数声明: void perror(const char *s);
 * 函数描述: 打印与当前errno值对应的错误消息到标准错误输出。
 * 参数:
 *     - s: 可选参数,用于指定一个前缀字符串,将其与错误消息一起输出。
 *
 * 返回值:
 *     无
 *
 * 使用示例:
 *     FILE* fp = fopen("test.txt", "r");
 *     if (fp == NULL) {
 *         perror("fopen");
 *     }
 */

read:从文件描述符中读取数据

/*
 * 函数名称: read
 * 函数声明: ssize_t read(int fd, void *buf, size_t count);
 * 函数描述: 从文件描述符fd中读取数据,并将其存储到缓冲区buf中。最多读取count字节的数据。
 * 参数:
 *     - fd: 文件描述符
 *     - buf: 存储读取的数据的缓冲区
 *     - count: 最大读取字节数
 *
 * 返回值:
 *     成功时返回实际读取的字节数,出错时返回-1,并设置errno
 *
 * 使用示例:
 *     char buffer[1024];
 *     int fd = open("test.txt", O_RDONLY);
 *     ssize_t bytesRead = read(fd, buffer, sizeof(buffer));
 *
 * 注意:
 *     - 如果读取的字节数少于count,则可能有以下情况:
         1. 文件结束
         2. 数据在缓冲区不足以填满count字节时返回
         3. 在非阻塞模式下,没有可用的数据立即可用时返回

 */

write:向文件描述符写入数据

/*
 * 函数名称: write
 * 函数声明: ssize_t write(int fd, const void *buf, size_t count);
 * 函数描述: 将缓冲区buf中的数据写入到文件描述符fd所对应的文件中。最多写入count字节的数据。
 * 参数:
 *     - fd: 文件描述符
 *     - buf: 存储要写入的数据的缓冲区
 *     - count: 写入的最大字节数
 *
 * 返回值:
 *     成功时返回实际写入的字节数,出错时返回-1,并设置errno
 *
 * 使用示例:
 *     int fd = open("test.txt", O_WRONLY | O_CREAT, 0644);
 *     const char* data = "Hello, World!";
 *     ssize_t bytesWritten = write(fd, data, strlen(data));
 *
 */

lseek:在文件中设置文件偏移量

/*
 * 函数名称: lseek
 * 函数声明: off_t lseek(int fd, off_t offset, int whence);
 * 函数描述: 在文件中设置文件偏移量,用于读取或写入文件的不同位置。
 * 参数:
 *     - fd: 文件描述符
 *     - offset: 偏移量,可以是正数、负数或0
 *     - whence: 偏移量的基准位置,有以下取值:
 *               - SEEK_SET: 从文件开头计算偏移量
 *               - SEEK_CUR: 从当前位置计算偏移量
 *               - SEEK_END: 从文件末尾计算偏移量
 *
 * 返回值:
 *     返回新的文件偏移量,出错时返回-1,并设置errno
 *
 * 使用示例:
 *     int fd = open("test.txt", O_RDONLY);
 *     off_t newPosition = lseek(fd, 0, SEEK_SET); // 设置偏移量为开头位置
 *
 */

umask:设置文件权限屏蔽位

/*
 * 函数名称: umask
 * 函数声明: mode_t umask(mode_t mask);
 * 函数描述: 设置当前进程的文件权限屏蔽位,并返回旧的文件权限屏蔽位。
 * 参数:
 *     - mask: 要设置的文件权限屏蔽位,用来限制新创建文件的默认权限
 *
 * 返回值:
 *     返回之前的文件权限屏蔽位
 *
 * 使用示例:
 *     mode_t oldMask = umask(077); // 设置屏蔽位为 077,限制新创建文件的默认权限
 *
 */

access:检查进程是否可以访问指定的文件路径

/*
 * 函数名称: access
 * 函数声明: int access(const char *path, int mode);
 * 函数描述: 检查进程是否可以访问指定的文件路径。
 * 参数:
 *     - path: 文件路径
 *     - mode: 检查模式,可以是下列值之一:
 *         - R_OK: 检查读权限
 *         - W_OK: 检查写权限
 *         - X_OK: 检查执行权限
 *         - F_OK: 检查文件是否存在
 *
 * 返回值:
 *     成功时返回0,出错时返回-1,并设置errno
 *
 * 使用示例:
 *     // 检查文件是否可读
 *     if (access("myfile.txt", R_OK) == 0) {
 *         printf("可读\n");
 *     } else {
 *         perror("access");
 *     }
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值