linux应用程序开发-文件编程-库函数
---恢复内容开始---
c库函数文件操作独立于具体的系统平台,可移植性较好。
库函数-创建和打开
FILE*fopen(const char*filename,const char*mode)
mode:打开模式
常见的打开模式:
r,rb:只读方式打开
w,wb: 只写方式打开,如果文件不存在,则创建该文件
a,ab:追加方式打开,如果文件不存在,则创建该文件
r+,r+b,rb+:读写方式打开
w+,w+b,wh+:读写方式打开,如果文件不存在,则创建该文件
a,a+b,ab+:读和追加方式打开,如果文件不存在,则创建该文件
b用于区分二进制文件和文本文件,这一点在DOS,window中区分,LINUX不区分二进制文件盒文本文件。
库函数-读
size_t fread(void*ptr,size_t size,size_t n,FILE *stream);
从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指的字符数组中,返回实际读取的字节数。
库函数-写
size_t fwrite(void*ptr,size_t size,size_t n,FILE *stream);
读字符:
int fgetc(FILE*stream);
---恢复内容结束---
c库函数文件操作独立于具体的系统平台,可移植性较好。
库函数-创建和打开
FILE*fopen(const char*filename,const char*mode)
mode:打开模式
常见的打开模式:
r,rb:只读方式打开
w,wb: 只写方式打开,如果文件不存在,则创建该文件
a,ab:追加方式打开,如果文件不存在,则创建该文件
r+,r+b,rb+:读写方式打开
w+,w+b,wh+:读写方式打开,如果文件不存在,则创建该文件
a,a+b,ab+:读和追加方式打开,如果文件不存在,则创建该文件
b用于区分二进制文件和文本文件,这一点在DOS,window中区分,LINUX不区分二进制文件盒文本文件。
读
size_t fread(void*ptr,size_t size,size_t n,file *stream);
写:
size_t fwrite(void*ptr,size_t size,size_t n,file *stream);
读字符
int fgetc(FILE*stream);
举例:
#include<stdio.h>
main()
{
FILE*fp;
char ch;
if((fp=fopen("c1.txt","rt"))==NULL)
{
printf("\nCannot open file strike any key exit");
getch();
exit(1);
}
ch=fgetc(fp);
while(ch!=EOP)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
写字符
int fputs(inyt c,FILE*stream)
举例:
#include<stdio.h>
main()
{
FILE*fp;
char ch;
if((fp=fopen("string","w+"))==NULL)
{
printf("\nCannot open file ,strike any key exit");
getch();
exit(1);
}
printf("input a string:\n");
ch=fgetchar();
while(ch!=‘\n‘)
{
fputc(ch,fp);
ch=getchar();
}
printf("\n");
fclose(fp);
}
格式化读:
fscanf(FILE*stream,char*format[,argument...])
从一个流中格式化输入
#include<stdlib.h>
#include<stdio.h>
int mian(void)
{
int i;
printf("input an interger:");
if(fscanf(stdin,"%d",&i))
printf("The integer read was:%i\n",i);
}
格式化写:
fprintf(FILE*stream,char*format[,argument...])
格式化输出从到一个流中
#include<stdlib.h>
#include<process.h>
FILE*stream;
int mian(void)
{
int i=10;
double fp=1.5;
char s[]="this is a string";
char c=‘\n‘;
stream=fopen("fprintf.out",""w);
fprintf(stream,"%s%c",s,c);
fprintf(stream,"%d\n",i);
fprintf(stream,"%f\n",fp);
fclose(stream);
}
定位:
int fseek(FILE*stream,long offset,int whence);
whence:
SEEK_SET
SEEK_CUR
SEEK_END
路径获得:
char*getcwd(char*buffer,size_t size);
把路径copy到buffer中,buffer如果太小,返回-1;
创建目录:
int mkdir(char*dir,int mode);
0返回成功,-1表示出错。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。