linux环境C开发系列3-文件

5 篇文章 0 订阅

概述

文件的输入输出操作时设备进行操作的基础。这类操作分为两类——–非缓冲文件操作和缓冲文件操作。
非缓冲文件操作适合小规模文件的读写和对实时性要求比较高的设备的数据通信,这部分操作时系统调用提供的;
缓冲文件操作索面想的是大规模非实时性数据处理问题,这类操作时标准输入输出库提供的。

非缓冲文件操作

通过文件标识符找到文件。
3个系统预先分配好的文件标识符:
0:标准输入,终端输入;
1:标准输出,终端输出;
2:标准错误,系统中存放错误信息的堆栈;

1、read(文件标识符,内存卡指针,内存块长度),用于从文件中将信息读取到制定的内存区域中。
返回值是实际读取到的长度,如果运行错误,则返回-1;

2、write(文件标识符,内存卡指针,内存块长度),用于将指定长度的data写入到文件中;

3、lseek(文件标识符,偏移长度,起始位置),
在程序中运行指定文件指针具体位置,其中SEEK_SET表示从文件开始处作为起始位置;SEEK_CUR表示以当前位置作为起始位置;
SEEK_END表示以文件结尾作为起始位置。

缓冲文件操作

此类操作中,数据放在缓冲区中,只有当数据长度即将超过缓冲区范围或者时间周期到达时,这些数据才会被送往制定地方,可以减少对物理设备的数据接口访问次数,从而降低大规模数据在IO操作的系统开支。标准输入输出库定义了文件流结构指针FILE *作为文件标识。

有3个文件流是系统预定义的:
stdin:标准输入;
stdout:标准输出;
stderr:标准错误;

1、FILE *fopen(路径,打开方式),
2、fclose(FILE *) ,fclose执行时,所有放在缓冲区中的数据写回到文件中,如果保存成功,返回-1,如果失败,则0。
3、fread(缓冲区指针,长度,数量,文件流指针);
4、fwrite();
5、fflush(fp),
6、fgetpos(文件流指针,fpos_t*位置);
7、fsetpos(文件流指针,const fpos_t*位置);
8、ftell(文件流指针);
9、rewind(文件流指针);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux上常用的C语言程序开发环境有多种选择,比如gcc、Makefile、Code::Blocks、Eclipse等。下面简单介绍一下gcc和Makefile的安装和使用。 1. 安装gcc gcc是Linux下最常用的编译器之一,它可以编译C、C++等程序。安装gcc的命令如下: ``` sudo apt-get install gcc ``` 2. 编写C程序 使用任意文本编辑器编写C程序,比如vim、gedit、nano等。以vim为例,打开终端,输入以下命令: ``` vim hello.c ``` 在vim中输入以下代码: ```c #include <stdio.h> int main() { printf("Hello World!\n"); return 0; } ``` 保存并退出。 3. 编译C程序 使用gcc编译C程序的命令如下: ``` gcc -o hello hello.c ``` 其中,-o选项用于指定输出文件名,hello是输出文件名,hello.c是源文件名。 4. 运行C程序 编译成功后,可以运行C程序,命令如下: ``` ./hello ``` 输出结果为: ``` Hello World! ``` 5. 使用Makefile Makefile是一个自动化编译工具,可以自动化地完成编译、链接等操作。使用Makefile可以简化编译过程,提高效率。 使用任意文本编辑器创建一个名为Makefile的文件,输入以下内容: ```makefile all: hello hello: hello.c gcc -o hello hello.c clean: rm -f hello ``` 其中,all、hello、clean是Makefile中的目标。all是默认目标,即在不指定目标时,会执行all目标。hello目标用于编译hello.c文件,clean目标用于清除编译生成的文件。 在终端中,输入以下命令: ``` make ``` 即可完成编译。如果需要清除编译生成的文件,可以输入以下命令: ``` make clean ``` 以上就是Linux上安装和使用C语言程序开发环境的简单介绍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值