嵌入式操作系统开发
学习内容:
1.lseek (用来调整光标的位置)
lseek (文件描述符,光标移动的位置数,光标移动的形式)
SEEK_SET:将光标移动到文件开头在增加相应的 offset 位置
SEEK_CUR:将光标移动到文件当前的位置再往后加 offset 的位置
SEEK_END:将光标移动到文件末尾的位置再往后加 offset 的位置
#include <unistd.h>
#include <sys/types.h>
off_t lseek(int filedes, off_t offset, int whence);
参数:
① filders:已打开的文件描述符。
② offset:根据参数whence来移动读写位置的位移数。
③ whence:取值有以下三种
SEEK_SET 参数offset 即为新的读写位置。
SEEK_CUR 以目前的读写位置往后增加offset 个位移量。
SEEK_END 将读写位置指向文件尾后再增加offset 个位移。
注意:当whence 值为SEEK_CUR 或SEEK_END 时,,参数offet 允许负值的出现。
2.stdio.h: C的标准输入输出库:I/O(input output)
file* 结构体
stdout:输出流
行缓冲:stdout在终端上进行输出的时候,输出的规则为每当出现换行符的时候进行一次刷新缓存,然后再进行操作(printf输出的时候,看到)
3.fopen():
#include <stdio.h>
FILE *fopen(const char *pathname, const char *mode);
参数:
r : 只读
w:只写,如果文件不存在,创建一个新的;如果文件存在,清空原先文件的文件内容
a:追加:不存在,创建一个新的;如果存在在文件末尾进行追加
r+:可读可写,文件不存在,打开失败
w+:(w)+(r+)
a+:(a)+(r+)
4.fread:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
pyr:字符串指针
size:读取每个字符的大小
nmemb:读多少
stream:文件描述符指针
5.fseek
如lseek
6.读字符的家族:
getc:从文件里读取一个字符getc(fp)返回值:当读到文件末尾无字符的时候,返回EOF(NULL)
fgetc:函数调用 效果和getc一样
getchar():
fputc:将某一字符写入文件流
int fputc(int c,FILE*stream)
putc:宏
putchar()
将字符从unsigned char 转换成int进行返回
带走缓冲区里多余的换行符