上期回顾
嵌入式系统开发
(一)文件编程(接上期)
头文件:
stdio.h:C的标准输出库:I/O(input output)
file*:
(1)stdout:输出流
(2)行缓冲:stdout在终端上进行输出的时候,输出的规则为每当出现换行符的时候进行一次刷新缓存,然后在进行操作(printf输出的时候,是看到换行符才进行输出)
5、lseek函数
(1)功能:用于调整光标的位置
(2)语法:(文件描述符,光标移动的位置数,光标的移动形式)
SEEK_SET:将光标移动到文件开头再增加相应的offset位置
SEEK_CUR:将光标移动到文件的当前位置再往后加offset的位置
SEEK_END:将光标移动到文件的末尾在增加offset的位置
lseek函数返回值:返回值是文件从开头到光标位置有多少个字符
6、ftruncate函数
(1)功能:将指定的文件大小修改成length指定的大小
若当前的文件的大小小于所指定大小,那就删除后面的数据
若当前的文件的大小大于所指定的大小,那就进行扩容
(2)语法:
ftruncate(int fd,length)
ftruncate(fd,0)
7、fopen函数
(1)fopen():
符号 | 含义 |
---|---|
r | 只读 |
w | 只写;若文件不存在,则创建一个一个新的;若文件存在,清空原来文件的内容 |
a | 追加;若不存在;创建一个新的;若存在,在文件末尾进行追加 |
r+ | 可读可写;若文件不存在,则打开失败 |
w+ | 可读可写,若文件不存在,则打开失败 |
a+ | 可读可写,且追加;若文件不存 |
7、fread函数/ fwrite函数
(1)size t fread (void *ptr ,size t size, size t number,FILE *stream);
(2)含义:
ptr:字符串指针
size:读取每个字符的大小
number:读多少个
stream:文件描述符指针
8、读字符的家族
一、getc:
从文件力读取一个字符getc (fp)
返回值:当读到文件末尾无字符的时候,返回EOF (NULL)
二、fgetc:函数调用
三、getchar():
将字符从unsigned char 转换成int进行返回
带走缓冲区里多余的换行符