千家信息网

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

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,库函数-文件访问上一个博文主要讲了系统调用,接下来就开始库函数调用讲解。特点:C库函数是独立与操作系统平台存在的,无论在nunixlinux,还是windows操作系统下库函数调用都是一样的。一、打开
千家信息网最后更新 2025年02月02日库函数文件,创建、打开、读写、删除、操作实现

库函数-文件访问

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

特点: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

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

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

#include

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*stream long offset,int whence

Whence:

SEEK_set 从文件头开始搜索

SEEK_CUR从当前的位置搜索

SEEK_END 从文件结束处开始搜索

第八、路径获取

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

Char *getcwdchar*buffersize_t size

上面定义一个size大小的buffergetcwd会把当前的路径名copy

buffer中,如果buffer太小,函数会返回-1.

路径获取实现:

#include

Main()

{

Char buf[80];

Getcwd(buf,sizeof(buf));

Printf("current working dirctory :%sn",buf);

}

第九、创建目录

#include

Int mkdir (char*dir int mode)

功能:

创建目录

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

在和linuxshell下的操作命令一样

#mkdir hello Scripts



        
0