c语言中的标准IO以及文件IO
1.标准IO:
(1)标准IO是c语言标准提供的一系列进行输入输出的函数
(2)标准IO具有缓冲区
(3)标准IO是在系统调用之上构建的
2.缓冲区
缓冲区是系统在内存中为正在使用的文件自动开辟的一片空间,对文件的读写都是先读写到缓冲区然后再到内存或者文件中。
建立缓冲区可以减少系统调用的次数,缓冲区的刷新,当缓冲区满时,遇到换行符‘\n’,强制刷新,文件关闭或者程序结束时就会刷新缓冲区。
3.系统调用
系统调用就是内核给用户空间留的接口(函数)
4.标准IO相关的一些简单的函数
1)fopen
函数返回值:FILE * 这是一个结构体指针通过这个结构体指针可以操作文件,我们称之为handle(句柄)
形参1:const char * 需要操作的文件路径,这里可以是文件的绝对路径,也可以是相对路径
形参2:const char * 文件的打开方式
r:以只读的方式打开文件,文件必须存在
w:以只写的方式打开文件,若文件存在则文件的内容会被清零,若文件不存在则创建文件
a:以附加的方式打开文件,若文件存在则在文件内容之后写入内容(原文件内容会被保留),若文件不存在则创建文件
2)fgetc fgets (按字符、字符串读)
函数返回值:fgetc: int fgets:char *
形参1: fgetc:FILE * (fopen的返回值) fgets:FILE * (fopen 的返回值)
形参2: fgets:char * 将文件内容读到的空间的首地址
形参3: fgets:int 每次读取文件的大小
3)fputc fputs (按字符、字符串写)
f
函数返回值:fputc: int fputs:char *
形参1: fputc:FILE * (fopen的返回值) fputs:FILE * (fopen 的返回值)
形参2: fputc:int 写入文件的字符的ASKII值 fgets:char * 写入文件内容的首地址
4)fread fwrite (按块读写)
fread:
函数返回值:size_t int类型的返回值 成功返回读取的块数,失败返回-1
形参1:FILE * (fopen的返回值)
形参2:viod * (读取文件内容的首地址)
形参3: size_t size 读取块的大小
形参4:size_t nmemb 读取的块数
fwrite
函数返回值:size_t int类型的返回值 成功返回写入的块数,失败返回-1
形参1:FILE * (fopen的返回值)
形参2:const viod * (写入文件内容的首地址)
形参3: size_t size 写入块的大小
形参4:size_t nmemb 写入的块数
5.文件IO
linux系统提供的一系列用来输入输出的函数(系统调用)
1)open
函数返回值:int 失败返回-1 成功返回非负的整形数
形参1:const char * 文件的路径,可以是绝对路径也可以是相对路径
形参2:mode_t mode 被打开文件的存取权限
形参3: int 文件权限标志 (新创建的文件权限)
2)read
函数返回值:ssize_t 失败 -1 成功 实际读取的字节数
形参1:int fd (open的返回值)
形参2:viod * 读取文件的内容存放的首地址
形参3: size_t count 读取的大小
3)
函数返回值:ssize_t 失败 -1 成功 实际写入的字节数
形参1:int fd (open的返回值)
形参2:viod * 写入文件的内容存放的首地址
形参3: size_t count 写入的大小
c语言中的标准IO以及文件IO相关推荐
- c语言设置输出字符大小_C语言中常用的几个头文件及库函数
点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://www.jb51.net/article/124594.htm 这 ...
- LinuxC—标准IO与文件IO学习笔记
标准IO与文件IO 1 概述 stdio 标准IO(优先使用) sysio 系统调用IO(文件IO) sysio是直接实现用户态切换内核态,sysio和平台是有关系的,比如windows和linux, ...
- 10.标准IO和文件IO
文件基础 概念:一组相关数据的有序集合 文件类型: 常规文件r 目录文件d 字符串设备文件c 块设备文件 b 管道文件p 套接字文件s 符号链接文件l 系统调用和库函数 内核显卡驱动 把数据扔给内核, ...
- go语言中同一个package下的文件相互引用怎么做?
go语言中同一个package下的文件相互引用怎么做? go 里面一个目录为一个package, 一个package级别的func, type, 变量, 常量, 这个package下的所有文件里的代码 ...
- c语言读取文件字节数,怎么在C语言中利用fstat函数获取文件的大小
怎么在C语言中利用fstat函数获取文件的大小 发布时间:2021-01-22 17:03:17 来源:亿速云 阅读:110 作者:Leah 怎么在C语言中利用fstat函数获取文件的大小?针对这个问 ...
- IO进程——系统IO与文件IO
IO进程--系统IO与文件IO 在应用开发过程中会经常需要访问文件.Linux下读写文件的方式有两大类:标准IO和文件IO.本次就来讲一讲文件IO和标准IO,以及两者的区别. 一.文件IO 在Linu ...
- Gox语言中使用内存虚拟文件系统提升IO处理速度-GX43.1
Gox语言中,1.06a版本以上,可以利用内置的github.com/topxeq/afero包来将内存中虚拟出一个文件系统.这样,如果内存足够大,完全可以利用它来提升一些文件IO处理的效率. 该包实 ...
- 《Linux操作系统 - 高级编程》第一部分 标准IO及文件IO(第2章 标准IO)
2.1 Linux I/O概述 2.1.1文件I/O和标准I/O的概念 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O).不带缓存指的是每个read,write都调用内核中的 ...
- step4 . day1标准IO和文件IO
标准IO:ANSI C中定义的一系列用于对IO操作的函数,(只能访问普通文件) 知识点:流指针:文件的操作,标准IO通常通过一个FILE的结构体,称这个结构体为流,他的指针称为流指针(系统自动打开的流 ...
最新文章
- oracle 02380,oracle 11.2.0.3 fornb…
- 云计算数据管理的4个关键因素
- Remove Extra One(思维)
- day36 Pyhton 网络编程03
- 测试驱动开发 测试前移_我如何以及为什么认为测试驱动开发值得我花时间
- 和为 k 的组合(51Nod-1268)
- python遍历文件夹方法
- 【雷达通信】基于matlab雷达前视成像仿真【含Matlab源码 643期】
- redis 集群常用命令
- 网络安全--通过握手包破解WiFi(详细教程)
- java进制转换所有方法_Java进制转换方法整理
- 小米路由器r2d_小米路由器R2D固件下载
- 简单!Python+OpenCV三步去除水印
- oracle 查历史数据,Oracle 查询历史数据(转帖)
- 零基础计算机入门,分享人人可以参考的路线,私藏的干货视频和书单,为你的程序员生涯助力,呐喊!
- Map集合及三层嵌套
- asp.net 调试 无法显示该网页
- CCC之I类设备、II类设备、III类设备的对比
- 如何在android运行lua脚本(最简单的讲解,一看就懂)
- 计算机网络协议分析全知识点总结兼期末复习重点
热门文章
- html+js翻页时钟
- Linux下文本文件合并和去除重复
- 郑州师范学院计算机科学与技术代码,郑州师范学院—VR虚拟仿真实验中心
- 可以独立部署的抽奖助手小程序如何开发搭建一览
- 微信小程序H5页面API红包代发接口
- 使用HTML5画布和jQuery使小球颜色不断变化
- 一款近年来备受青睐的web弹层组件——layer(http://layer.layui.com/)
- Python之数据分析(中位数、波动范围、极差、离差、方差、标准差)
- 毕业设计记录-yolov5的wandb报错,原因和解决方法(非屏蔽wandb)
- EasyCVR视频平台接入海康私有协议设备的常见问题汇总