UNIX系统中C语言的文件操作与低级别I/O详解
1. sscanf和sprintf函数
标准输入输出库(stdio)不仅可以将格式化数据输出到文件,还能将其“打印”到字符串中,或者从字符串中“读取”格式化数据。sscanf和sprintf函数与fscanf和fprintf类似,不过它们的第一个参数不是文件指针,而是字符串。
-sscanf:从字符串中复制字符,并根据第二个参数进行转换。
-sprintf:将参数的格式化副本放入字符串中。
这两个函数的用途非常广泛。
2. 文件定位操作
在读写文件数据之前,经常需要将文件指针移动到特定位置。标准输入输出库中用于文件定位的函数是fseek,它接受三个参数:
- 一个指向已打开文件流的文件指针。
- 一个长整型整数,表示要移动的字节数,称为偏移量。
- 一个整数,表示偏移量的起始位置。
偏移量起始位置的取值及含义如下:
| 值 | 含义 |
| — | — |
| 0 | 从文件开头计算偏移量 |
| 1 | 从文件当前位置计算偏移量 |
| 2 | 从文件末尾计算偏移量 |
以下是一些常见的文件定位操作示例:
- 移动到文件末尾:fseek(fp, 0L, 2)
- 移动到文件开头: <