0.什么是库函数
1 库函数
将内核暴露出来的接口封装好的函数的方法为库函数
2.库函数:在用户态调用,在用户态执行
C语言库函数对文件操作接口:fopen,fclose,fread,fwrite
他们属于C库函数,在lib层中。返回值为FILE* 文件指针。
1. fopen
-
原型 FILE * fopen(const char *path,cost char *mode)
-
功能:打开一个文件,返回指向该文件的指针
-
参数:第一个参数为欲打开文件的文件路径及文件名,
第二个参数表示对文件的打开方式 -
返回值:如果出错,fopen将返回一个空指针值NULL
成功,返回文件指针 -
打开方式:
文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:r(read): 只读
w(write): 只写
a(append): 追加
t(text): 文本文件,可省略不写,默认文本文件
b(binary): 二进制文件
+: 读和写如: 1.“r+” = “rt+”
打开一个文本文件,文件必须存在,允许读写 -
例:
FILE *fr =fopen(“c:\1.test”,“r”);
其意义是打开C驱动器磁盘的根目录下的文件1.test,c:\\1.test中的两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。
2. fwrite
- 原型: size_t fwrite(const void * buf, size_t size, size_t count, FILE *fp)
- 功能: 把 buf 所指向的数组中的数据写入到给定流 fp中
- 参数:
buf :指向数据块的指针
size:参数 size 是指单个元素的大小,其单位是字节而不是位
count :指出要读或写的元素个数,这些元素在 buf 所指的内存空间中连续存放
fp: fopen 打开的文件指针,目标文件 - 返回值:
返回值随着调用格式的不同而不同:
(1) 调用格式: fwrite(buf,sizeof(buf),1,fp);成功写入返回值为1(即count)
(2)调用格式: fwrite(buf,1,sizeof(buf),fp);成功写入则返回实际写入的数据个数(单位为Byte)
一般使用第二种方法。
3. fread
- 原型: size_t fread(void *buf, size_t size, size_t count, FILE *fp)
- 功能: 从给定流 fp读取数据到 buf 所指向的数组中
- 参数:同上
- 返回值:读取的元素的个数
- 操作:
int iCount = fread(buf, 1, sizeof(buf), fp);
4. fclose
- 原型: int fclose( FILE *fp );
- 功能: 关闭一个文件流
- 实现:
使用fclose()函数就可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区 - 返回值: 成功关闭,fclose 返回 0,否则返回EOF(-1),errno被设置
参考:
[1]: https://blog.csdn.net/ffsiwei/article/details/80990210
[2]: https://blog.csdn.net/qq_40657299/article/details/78355408