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相关推荐

  1. c语言设置输出字符大小_C语言中常用的几个头文件及库函数

    点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://www.jb51.net/article/124594.htm 这 ...

  2. LinuxC—标准IO与文件IO学习笔记

    标准IO与文件IO 1 概述 stdio 标准IO(优先使用) sysio 系统调用IO(文件IO) sysio是直接实现用户态切换内核态,sysio和平台是有关系的,比如windows和linux, ...

  3. 10.标准IO和文件IO

    文件基础 概念:一组相关数据的有序集合 文件类型: 常规文件r 目录文件d 字符串设备文件c 块设备文件 b 管道文件p 套接字文件s 符号链接文件l 系统调用和库函数 内核显卡驱动 把数据扔给内核, ...

  4. go语言中同一个package下的文件相互引用怎么做?

    go语言中同一个package下的文件相互引用怎么做? go 里面一个目录为一个package, 一个package级别的func, type, 变量, 常量, 这个package下的所有文件里的代码 ...

  5. c语言读取文件字节数,怎么在C语言中利用fstat函数获取文件的大小

    怎么在C语言中利用fstat函数获取文件的大小 发布时间:2021-01-22 17:03:17 来源:亿速云 阅读:110 作者:Leah 怎么在C语言中利用fstat函数获取文件的大小?针对这个问 ...

  6. IO进程——系统IO与文件IO

    IO进程--系统IO与文件IO 在应用开发过程中会经常需要访问文件.Linux下读写文件的方式有两大类:标准IO和文件IO.本次就来讲一讲文件IO和标准IO,以及两者的区别. 一.文件IO 在Linu ...

  7. Gox语言中使用内存虚拟文件系统提升IO处理速度-GX43.1

    Gox语言中,1.06a版本以上,可以利用内置的github.com/topxeq/afero包来将内存中虚拟出一个文件系统.这样,如果内存足够大,完全可以利用它来提升一些文件IO处理的效率. 该包实 ...

  8. 《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都调用内核中的 ...

  9. step4 . day1标准IO和文件IO

    标准IO:ANSI C中定义的一系列用于对IO操作的函数,(只能访问普通文件) 知识点:流指针:文件的操作,标准IO通常通过一个FILE的结构体,称这个结构体为流,他的指针称为流指针(系统自动打开的流 ...

最新文章

  1. oracle 02380,oracle 11.2.0.3 fornb…
  2. 云计算数据管理的4个关键因素
  3. Remove Extra One(思维)
  4. day36 Pyhton 网络编程03
  5. 测试驱动开发 测试前移_我如何以及为什么认为测试驱动开发值得我花时间
  6. 和为 k 的组合(51Nod-1268)
  7. python遍历文件夹方法
  8. 【雷达通信】基于matlab雷达前视成像仿真【含Matlab源码 643期】
  9. redis 集群常用命令
  10. 网络安全--通过握手包破解WiFi(详细教程)
  11. java进制转换所有方法_Java进制转换方法整理
  12. 小米路由器r2d_小米路由器R2D固件下载
  13. 简单!Python+OpenCV三步去除水印
  14. oracle 查历史数据,Oracle 查询历史数据(转帖)
  15. 零基础计算机入门,分享人人可以参考的路线,私藏的干货视频和书单,为你的程序员生涯助力,呐喊!
  16. Map集合及三层嵌套
  17. asp.net 调试 无法显示该网页
  18. CCC之I类设备、II类设备、III类设备的对比
  19. 如何在android运行lua脚本(最简单的讲解,一看就懂)
  20. 计算机网络协议分析全知识点总结兼期末复习重点

热门文章

  1. html+js翻页时钟
  2. Linux下文本文件合并和去除重复
  3. 郑州师范学院计算机科学与技术代码,郑州师范学院—VR虚拟仿真实验中心
  4. 可以独立部署的抽奖助手小程序如何开发搭建一览
  5. 微信小程序H5页面API红包代发接口
  6. 使用HTML5画布和jQuery使小球颜色不断变化
  7. 一款近年来备受青睐的web弹层组件——layer(http://layer.layui.com/)
  8. Python之数据分析(中位数、波动范围、极差、离差、方差、标准差)
  9. 毕业设计记录-yolov5的wandb报错,原因和解决方法(非屏蔽wandb)
  10. EasyCVR视频平台接入海康私有协议设备的常见问题汇总