文件IO是Linux系统API
标准IO是C语言库函数
区别:c语言库函数是API封装而来,库函数多了一层封装,所以c库函数更好用一些。
API在不同系统是不通用的,C库函数在所有系统是几乎一样的
所以C库函数具有可移植性,而API不具有可移植性
易用性,c库函数更好用,文件IO不带缓存,而标准IO是带缓存的
所以标准IO的性能更好
常见的标准IO有 fopen fclose fread fwrite fseek fflush(刷新的,让APP的缓冲区执行底层操作)
最好的办法还是自己写代码去实战
打开和写入的示例代码
#include<stdio.h>
#include <stdlib.h>
#define FILENAME "a.txt"
int main(void)
{
FILE *fp = NULL;
size_t len = -1;
int a[5] = {1,2,3,4,5};
fp = fopen(FILENAME, "w+");//如果文件没有则创建,如果文件已有则截断
if(NULL == fp)
{
perror("fopen");
exit(-1);
}
printf("文件打开成功,fd = %p.\n", fp);
//在这里读写文件
//len = fwrite("abcde", 1, 5, fp); //要写入的数据,每一个的大小,写入的长度,文件指针
len = fwrite(a, sizeof(int), sizeof(a)/sizeof(a[0]), fp); //要写入的数据,每一个的大小,元素个数,文件指针
printf("len = %d.\n", len);
fclose(fp);
return 0;
}
加入读的代码
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILENAME "a.txt"
int main(void)
{
FILE *fp = NULL;
size_t len = -1;
//int a[5] = {1,2,3,4,5};
char buf[100] = {0};
fp = fopen(FILENAME, "r+");//如果文件没有则创建,如果文件已有则截断
if(NULL == fp)
{
perror("fopen");
exit(-1);
}
printf("文件打开成功,fd = %p.\n", fp);
//在这里读写文件
//len = fwrite("abcde", 1, 5, fp); //要写入的数据,每一个的大小,写入的长度,文件指针.
memset(buf, 0, sizeof(buf));
len = fread(buf, 1, 10, fp); //要写入的数据,每一个的大小,元素个数,文件指针
printf("len = %d.\n", len);
printf("buf is [%s].\n", buf);
fclose(fp);
return 0;
}