GoDm@'s Blog

Linux C标准IO操作

版权信息

warning

本文章为博主原创文章。遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。


📌 C 标准库 I/O 函数(基于 <stdio.h>

1. 打开和关闭文件

#include <stdio.h>  
FILE *fopen(const char *filename, const char *mode); 
int fclose(FILE *stream);

2. 读写字符

int fgetc(FILE *stream);     // 读取一个字符
int fputc(int c, FILE *stream);  // 写入一个字符

示例:

char c = fgetc(fp);
fputc('A', fp);

3. 读写字符串

char *fgets(char *s, int size, FILE *stream); // 读取一行(最多 size-1 个字符) 
int fputs(const char *s, FILE *stream);       // 写入字符串

示例:

char buf[100]; fgets(buf, sizeof(buf), fp); 
fputs("Hello\n", fp);

4. 格式化 I/O

int fprintf(FILE *stream, const char *format, ...);  // 格式化输出到文件 
int fscanf(FILE *stream, const char *format, ...);   // 格式化读取

示例:

fprintf(fp, "name=%s age=%d\n", "Tom", 20); 
fscanf(fp, "%s %d", name, &age);

5. 块读写(适合二进制文件)

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);

示例:

int data[10]; fwrite(data, sizeof(int), 10, fp); // 写10个整数 
fread(data, sizeof(int), 10, fp);  // 读10个整数

6. 文件定位

int fseek(FILE *stream, long offset, int whence);  // 移动文件指针
long ftell(FILE *stream);                         // 获取当前位置 
void rewind(FILE *stream);                        // 回到开头`

whence 可取:


7. 缓冲刷新

int fflush(FILE *stream);  // 强制把缓冲区写入文件

常用于写日志,避免异常退出时丢数据。


共计约446字。于2025/09/09首次发布,最后更新于2025/09/09。

本文章为博主原创文章。遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

#Linux | #IO | #内核 |
  1. 📌 C 标准库 I/O 函数(基于 <stdio.h>)
    1. 1. 打开和关闭文件
    2. 2. 读写字符
    3. 3. 读写字符串
    4. 4. 格式化 I/O
    5. 5. 块读写(适合二进制文件)
    6. 6. 文件定位
    7. 7. 缓冲刷新