嵌入式学习库函数文件操作
使用库函数操作文件,可以写出跨平台的代码。这是其优点。下面介绍C库函数操作文件的方法。这里是相关API。
- FILE * fopen*(const char * filename, const char * mode)
打开文件fopen
FILE * fopen*(const char * filename, const char * mode)
filename: 打开的文件名(包含路径,缺省则为当前路径)
mode:打开模式
b在mode中用于区分二进制文件和文本文件,这一点在DOS,Windows系统中是有区别的,但是在Linux中并不区分。在Windows系统中当读文件时\n被替换成\r\n。写文件时\r\n被替换为\n。
读文件fread
size_t fread(void * ptr, size_t size, size_t n, FILE * stream);
/*
从stream指向的文件中读取n个字段,每个字段的字节为size。并将读取的数据放入
ptr所指的字符数组中,返回实际已经读取的数据字段数。
*/
man fread查看详细
写文件fwrite
size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
从缓冲去ptr所指的数组中吧n个字段写到stream指向的文件中,每个字段长为size个字节,返回实际写入的字段数。
man fwrite查看详细
文件指针操作fseek
int fseek(FILE * stream, long offset, int whence);
whence: SEEK_SET, SEEK_CUR, SEEK_END
获取当前路径
char * getcwd(char * buffer, size_t size);
如果buffer太小,会返回-1。
创建目录
int mkdir(char * dir, int mode);
详细信息 man 2 mkdir
不常用的文件操作函数
- fgetc
- fputc
- fscanf
- fprintf