库函数-文件访问
上一个博文主要讲了系统调用,接下来就开始库函数调用讲解。
特点:C库函数是独立与操作系统平台存在的,无论在nunixlinux,还是windows操作系统下库函数调用都是一样的。
一、打开文件
FILE*fopen(cons char*filename,const char*mode)
Filename:
打开的文件名;
Mode:
打开的模式;
常见的打开模式:
R rb 只读方式打开
W wb 只写方式打开,文件不存在,进行创建.
A,ab 追加方式打开,如果文件不存在,则创建文件
W+,w+b,wh+只读方式打开,如果文件不存在,则创建文件
A+ ,a+b ab+ 读和追加的方式打开。如果文件不存在,则创建改文件
库函数的创建和打开
b用于区分二进制文件
二、库函数读
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)
功能:
从缓冲区ptr所指向的数组中把n个字段写到stream指向的文件中,每个字段长为size
的字节,返回实际写入的字段数。
四、库函数读字符
从指定的文件中都一个字符
#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); //获取一个字符,并把字符赋值微微ch
wwhile(ch!=EOF)
{
putchar(ch); //打印该字符
ch=fget(fp); //继续获取改字符
}
fclose(fp);
}
五、库函数写字符
#include<stdio.h>
main ()
{
FILE *fp;
char ch;
if((fp=fopen(“c1.txt”,”wt+”)==NULL)
{
printf(“\nCANNOT open file strike any key exit”);
getch();
exit(1);
}
Printf(“input a string:\n”);
ch=getchar(); //获取一个字符,并把字符赋值微微ch
while(ch!=’\n’)
{
fputch(ch,fp); //写字符
ch=getchar(); //继续获取如输入的字符
}
Print(“\n”);
fclose(fp);
}
六、库文件-格式化读
Fscanf(FILE*stream,char *format[,argument.....] )
#include <stdlib.h>
#include<process.h>
Void main(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); //第一个写入的是字符串,第二个是char型
Fprintf(stream,”%d\n”,i);
Fprintf(stream,”%f\n”,fp); //浮点型额类型
Fclose(steam); //关闭指向文件写入
}
第七、库函数定位
Int fseek(FILE*stream, long offset,int whence)
Whence:
SEEK_set 从文件头开始搜索
SEEK_CUR从当前的位置搜索
SEEK_END 从文件结束处开始搜索
第八、路径获取
在编写程序的时候,有时候需要知道路径。
Char *getcwd(char*buffer,size_t size)
上面定义一个size大小的buffer,getcwd会把当前的路径名copy
到buffer中,如果buffer太小,函数会返回-1.
路径获取实现:
#include<unistd.h>
Main()
{
Char buf[80];
Getcwd(buf,sizeof(buf));
Printf(“current working dirctory :%sn”,buf);
}
第九、创建目录
#include<sys/stat.h>
Int mkdir (char*dir, int mode)
功能:
创建目录
返回值:表示成功,-1表示出错。
在和linuxshell下的操作命令一样
#mkdir hello Scripts
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。