Linux下标准I/O库函数fopen、fclose函数的使用方法
fopen、fclose使用方法详解
- 1.I/0的管理分类
- 1.1打开流
- 1.2关闭流
- 1.3代码实操
- 1.4运行截图
无论是编写系统程序还是应用程序,都离不开I/O这个重要的环节。
相对于低级的I/O操作(即系统调用级的I/O),标准l/O库函数处理了很多细节,如缓存分配等。
考虑到代码的可移植性,开发人员应该在编写代码时尽可能使用标准库函数。
1.I/0的管理分类
◆由ANSI标准提供的标准IO库函数几乎被所有的操作系统支持,如winsdows’ 下编写的程序几乎不用做任何修改就可以在linux’下重新编译运行。如: fopen、 fread、 fwrite、fclose。
◆以系统调用的方式给用户提供函数接口(遵循POSIX标准)例如linux操作系统提供的文件I0接口。如:open、close、 read、 write、 ioctl.
◆系统调用与操作系统直接相关,直接使用系统调用编写的程序的可移植性差。
◆头文件<stdio.h>中声明了标准C的I/O库,标准C的I/O库在所有通用计算机上的C语言实现都是相同的。
◆对于标准I/O操作函数来说,打开或创建一个文件的时候,会返回一个指向FIL E结构体的指针。
◆FILE结构体包含了I/O函数库为管理文件所需要的尽可能多的信息。包括了用于I/O文件的文件描述符、指向流缓存的指针、缓存长度等。
< >定义路径: /usr/include/libio.h 0别名(typedef): /usr/include/stdio.h
1.1打开流
◆头文件: #include <stdio.h>
◆定义函数: FILE* fopen(const char *pathname, const char *mode);
函数说明:
➢pathname: 文件的路径及文件名。
➢mode: 流的打开方式。
◆返回值:
➢成功: 返回指向该流的指针。
➢失败: 则返回NULL,并把错误代码存在errno中。
1.2关闭流
头文件: #include <stdio.h>
◆定义函数: int fclose(FILE *stream);
◆>函数说明:
➢fclose用来关闭fopen打开的文件。此动作会让缓冲区的数据写入文件中,并释放系统所提
供的文件资源。
◆返回值:
➢成功返回0;
➢失败返回EOF,并把错误代码存到errno中。
1.3代码实操
#include<stdio.h>
int main()
{FILE *fp; //定义文件指针
fp=fopen("fork","a"); //fopen返回值给指针,注意两个参数形式
if(fp==NULL) //判断是否成功
{printf("no");
}
else
{printf("sucess\n");
}
int i; //介绍关闭流
i=fclose(fp); //fclose函数返回值i,参数是打开文件指针
if(i==0) //是否关闭成功
{printf("ok\n");
}
else
{printf("file close error\n");
}
return 0;
}
1.4运行截图
Linux下标准I/O库函数fopen、fclose函数的使用方法相关推荐
- linux在指定行添加内容,linux下利用shell在指定的行添加内容的方法
linux下利用shell在指定的行添加内容的方法 在linux的一些配置中总会要进行某个文件中的某行的操作,进行增加,修改,删除等操作. 而这里主要是进行的是指定的行添加数据的操作: 脚本如下: s ...
- Linux下程序崩溃dump时的 core文件的使用方法
Linux下程序崩溃dump时的 core文件的使用方法 1.在启动程序前执行 ulimit -c unlimited unlimited 表示生成文件的大小限制,也可以修改为自定义的大小,例如: u ...
- linux下各种格式的压缩包的压缩、解压方法
用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩.下面介绍一下备份与压缩的命令,大致总结了linux下各种格式的压缩包的压缩.解压方法.但是部分方法我没有用到,也就不全,希 ...
- Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法
Linux下MySql出现#1036 – Table ' ' is read only 错误解决方法 参考文章: (1)Linux下MySql出现#1036 – Table ' ' is read o ...
- linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法
linux下java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider解决方法 参考文章: ( ...
- 【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现
转自:Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现_Jaster_wisdom的专栏-CSDN博客 之前在这里和这里调用了matlab自带的一些函数,是通过matl ...
- linux select函数好处,linux下的epoll较之传统的select函数比较其优点
linux下的epoll较之传统的select函数比较其优点 突破了单进程打开SOCKET描述符最大数目的限制,select单进程打开FD的数据是有限制的,由FD_SETSIZE设置,默认值是2048 ...
- linux服务器mv文件,linux下使用mv命令移动文件到指定目录的方法
linux下使用mv命令移动文件到指定目录的方法 发布时间:2020-10-30 10:01:25 来源:亿速云 阅读:83 作者:小新 这篇文章给大家分享的是有关linux下使用mv命令移动文件到指 ...
- Linux下判断磁盘是SSD还是HDD的几种方法
文章目录 1.使用Linux相关命令 2.linux查看磁盘所在槽位 1.使用Linux相关命令 方法1: 如果是直通盘,即JBOD模式,方法则正确 如果返回1则表示磁盘可旋转,那么就是HDD了:反之 ...
最新文章
- Javascript作用域问题的构造函数的变量
- 【Flutter】监听滚动动作 控制组件 透明度渐变 ( 移除顶部状态栏空白 | 帧布局组件 | 透明度组件 | 监听滚动组件 )
- 微信小程序设置云函数使用的环境
- 四十五、和我一起看看,国外的Python考试到底是怎么样(上篇)
- C语言高级编程:利用堆栈溢出修改函数返回地址
- pojo类无法注入service解决示例
- 基于JAVA+SpringBoot+Mybatis+MYSQL的家庭财务管理系统
- 观周教授新冠报告而作
- 在RedHat Linux下安装惠普磁带机(转)
- 反转链表——Java递归求解
- Python-Level2-day04:正则表达式概述,元字符使用,匹配规则(特殊字符匹配,贪与非贪婪模式,分组),re模块使用
- 大数据时代,个人信息安全由谁来保护?
- freeipa 客户端 Kerberos认证 SSSD关系
- 苹果与希捷 到底谁的错
- Linux公社 学习连接
- sync failed 错误 springboot
- 为什么谷歌越来越牛逼, 而百度却沦为江湖骗子?
- 微信链接卡片在线制作工具及教程
- 全球及中国吊臂汽车起重机行业研究及十四五规划分析报告
- 医院信息系统(HIS)的“一个都不能少”!