Linux 系统下标准IO编程
常用的标准I/O库函数如下:
1.fopen、fclose
2.fgetc、fputc、fgets、fputs
3.fprintf、fscanf
4.fread、fwrite
5.fflush
6.fseek、lseek
7.feof
读取函数:fgetc,fgets,fscanf,fread
写函数:fputc,fputs,fprintf,fwrite
fopen函数
man指令查看:man fopen
#include<stdio.h>
FILE *fopen(const char *path,cost char *mode);
第一个参数:表示打开的文件
第二个参数:表示文件的读写操作和光标的位置
返回值:打开成功,返回一个FILE类型的指针,出错返回NULL
mode | 读写操作,光标位置 |
---|---|
r | 读写,光标在文件头,文件必须存在 |
r+ | 读写,光标在文件头,文件必须存在 |
w | 只写,光标在文件头,如果文件存在,内容会被清空,若文件不存在新建文件 |
w+ | 读写,光标在文件头,如果文件存在,内容会被清空,若文件不存在新建文件 |
a | 只写,光标在文件尾部,追加内容,若文件不存在新建文件 |
a+ | 读写,光标在文件尾部,追加内容,若文件不存在新建文件 |
– | – |
close 函数
man指令查看:man fclose
#include<stdio.h>
int *fclose(FILE *fp);
例程:
#include<stdio.h>
int main()
{
FILE *fp1 = NULL;
if((fp1 = fopen("test1.txt","w")) == NULL)
{
printf("打开失败!");
return -1;
}
fprintf(fp1,"hello world");
fclose(fp1);
return 0;
}
结果:
fgets 函数
char *fgets(char *s,int size,FILE *stream)
第一个参数:表示缓存,即读到的内容存到哪里
第二个参数:读多少个字节,注意这里只能读取size-1个字节。
在读取的最后会被插入一个‘\0’。
第三个参数:被读的文件位置
返回值:读取成功,返回s,出错返回NULL
fputs 函数
int fputs(const char *s,FILE *stream);
第一个参数:表示缓存,即要写入的内容
第二个参数:写到哪里
返回值:成功,返回非负数,出错为EOF返回-1
fgetc 函数
int fgetc(FILE *fp)
功能:从文件中读取一个字符
返回值:成功返回读取的字符,出错返回EOF
fputc 函数
int fputc(int c,FILE *fp)
功能:写一个字符到文件中
返回值:成功返回输入的字符,出错返回EOF
fscanf函数
#include<stdio.h>
int fscanf(FILE *stream, char *format,[argument…]);
fprintf函数
#include<stdio.h>
int fprintf (FILE* stream, const char*format, [argument])
fread函数
#include<stdio.h>
size_t fread(void *pth, size_t size, size_t nmemb, FILE *stream);
第一个参数:表示读到的内容存到*pth
第二个参数:表示每一项的长度是size
第三个参数:表示最多读取nmeme项
第四个参数:被读的文件位置
返回值:读取成功,返回真实读取的项数(小于或等于nmemb),出错返回0
注意:如果返回的数字大于nmamb,出错。
fwrite函数
#include<stdio.h>
size_t fwrite(const void* buffer, size_t size, size_t nmemb, FILE* stream);
第一个参数:表示写入的内容
第二个参数:表示每一项的长度是size
第三个参数:表示最多写入nmeme项
第四个参数:被写的文件位置
返回值:写入成功,返回实际写入的数据块数目(小于或等于nmemb),出错返回0