Linux下ANSI C文件管理

ANSI文件库封装了标准的文件操作函数库,通过系统调用函数可以很方便的对文件进行操作,并且加入了文件缓冲机制,提供记录方式的对写文件,具有很好的可移植性,提高了代码的健壮性。其主要包括以下几个方面:
##1.文件指针
##2.文件和流之间的关系
##3.文本和二进制
##4.文件的基本操作
1.文件是一个可以永久存储的字节组合,在Linux系统中,目录、设备文件和管道都属于文件,不同的文件具有不同的特性。在ANSI中提供了一个文件操作的结构体,即文件指针FILE。文件的打开,关闭,读写等操作都离不开它,该结构体包含在头文件stdio.h中。
2.操作系统屏蔽了文件操作的IO和物理细节,我们不必追究一些底层的操作。文件打开后,就会以流的形式体现,操作文件就等同于操作数据流。
3.ANSI 规定了两种文件的存贮方式:文本和二进制。在Linux系统中文件都是以二进制存储的,在用户打开的时候,根据用户的指定方式进行存取。
4.文件的打开和关闭
(1)FILE *fopen(const char *path,const char *mode);文件打开函数
(2)int fclose(FILE *stream);文件关闭函数
其中在fopen函数中path指的是文件路径,mode指的是文件的操作模式,如可读、可写等。这些都有对应的表格可查。其中参数“”+“”表示在文件的最后添加数据,这种方式不会破坏已存在的文件内容。文件打开成功后就会返回一个FILE指针,如果文件打开失败返回NULL,通过判断该指针来判断文件是否成功打开。
5.文件的读写
文件一旦打开就可以对文件进行操作了,ANSI提供三种不同的文件操作分别是一个字符、一行字符、成块数据的操作。
(1)每次一个字符的文件操作
int getc(FILE *stream);
int fgetc(FILE *stream);
int getchar(void);
其中getc和fgetc函数的作用是相同的,读入一个字符到文件流,但是getc的运行效率要高一些,这是问什么呢?因为getc通常是一个宏定义,而fgetc是一个函数,系统在调用一个函数的时候效率没有宏替换来的快(个人再结合一些书籍看的,不知道对不对)。
int putc(int c,FILE *stream);
int fputc(int c,FILE *stream);
int putchar(int c);
与上面功能相对应,输出一个字符到文件流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值