首页 > 代码库 > 库函数文件,创建、打开、读写、删除、操作实现

库函数文件,创建、打开、读写、删除、操作实现

库函数-文件访问

上一个博文主要讲了系统调用,接下来就开始库函数调用讲解。

特点:C库函数是独立与操作系统平台存在的,无论在nunixlinux,还是windows操作系统下库函数调用都是一样的。

 

一、打开文件

FILE*fopen(cons char*filename,const char*mode)

Filename:

打开的文件名;

Mode:

打开的模式;

 

常见的打开模式:

                    R rb 只读方式打开

                    W wb 只写方式打开,文件不存在,进行创建.

                    A,ab 追加方式打开,如果文件不存在,则创建文件

                    W+,w+bwh+只读方式打开,如果文件不存在,则创建文件

                    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);

 

 

}

 

 

 

六、库文件-格式化读

FscanfFILE*streamchar *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 fseekFILE*streamlong offset,int whence

Whence:

SEEK_set 从文件头开始搜索

SEEK_CUR从当前的位置搜索

SEEK_END 从文件结束处开始搜索

 

 

第八、路径获取

在编写程序的时候,有时候需要知道路径。

Char *getcwdchar*buffersize_t size

上面定义一个size大小的buffergetcwd会把当前的路径名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*dirint mode)

功能:

创建目录

返回值:表示成功,-1表示出错。

 

在和linuxshell下的操作命令一样

#mkdir hello Scripts

 

 

库函数文件,创建、打开、读写、删除、操作实现