文件标准I/O基本操作——FX乐曲时代

在Linux王国的和平年代里,优秀的函数们纷纷踏上了成为直播网红的不归路,造就了最为辉煌的FX乐曲时代

在Linux的文件操作中标准I/O操作与底层I/O操作的对比

比起前辈们(底层I/O操作)的认真率直,新一代的FX组合更是有了不少骚操作(加入了缓存机制)

名称

说明

标准文件I/O操作

标准I/O库的所有操作都是围绕流来进行的

标准I/O采用了缓存机制,在内存中开辟缓冲区为程序中的文件使用

针对控制台的打印输出

底层文件I/O操作

没有缓存机制,需要用户自己建立缓存区

每个文件操作动作都调用内核中的相应系统调用

通过文件描述符来访问文件

针对文件操作和读写硬盘

标准I/O里面有着许多各种函数

其中既有读写文件的F6组合,也有

分类方法

标准I/O函数

函数说明

读写文件

每次一定数量的I/O

fwrite()

每次I/O操作读或写某种数量的对象,而每个对象具有指定的长度

fread()

每次一个字符的I/O

fgetc()

一次读或写一个字符,如果流是带缓存的,则标准I/O函数处理所有缓存

fputc()

每次一行的I/O

fgets()

一次读或写一行。每行都以一个新行符终止。当调用fgets()时,应说明能处理的最大行长

fputs()

打开文件

fopen()

它们可以以不同的模式打开,但都返回一个指向FILE的指针

对文件的读写都是通过这个FILE指针来进行

fdopen()

关闭文件

fclose()

该函数将缓冲区内的数据全部写入到文件中,并释放系统所提供的文件资源

定位指针

fseek()

用户设定stream流的文件位置指示,调用成功返回 0,失败返回-1

(fseek()的whence参数:SEEK_SET/ SEEK_CUR/ SEEK_END)

ftell()

用于取得当前的文件位置,调用成功则返回当前文件读写位置,若出错则为-1

rewind()

用于设定流的文件位置指示为文件开始,该函数调用成功无返回值

rewind()等价于fseek(stream, 0, SEEK_SET)

读写F6组合

fwrite函数与fread函数

作为F6组合的双人合唱组,唱过的的歌可数不胜数,但每一首歌都会将感情全力倾注,伴随着乐声翩翩起舞

所需头文件

#include

函数原型

size_t fwrite(const void* ptr, size_t size, size_t nmemb, FILE * stream)

函数传入值

ptr:存放写入数据的缓冲区

size:写入数据的大小

nmemb:字符串数目

stream:要写入的文件流

函数返回值

成功:返回实际写入的nmemb数目

失败:返回EOF

所需头文件

#include

函数原型

size_t fread(void* ptr, size_t size, size_t nmemb, FILE * stream)

函数传入值

ptr:存放读取数据的缓冲区

size:读取的数据长度

nmemb:字符串数目

stream:要读取的文件流

函数返回值

成功:返回实际读取的nmemb数目

失败:返回EOF

fgetc函数与fputc函数

随着音乐我们走上了舞台,听众们的耳朵早就竖了起来,一下一下清脆的节拍,跟着我们一起狂欢起来!!!!

所需头文件

#include

函数原型

int getc(FILE * stream)

int fgetc(FILE * stream)

int getchar(void)

函数传入值

stream:要输入的文件流

函数返回值

成功:返回读取的字符

失败:返回EOF

备注

函数getchar()等同于getc(stdin)

所需头文件

#include

函数原型

int putc(int c, FILE * stream)

int fputc(int c, FILE * stream)

int putchar(int c)

函数传入值

stream:要输入的文件流

函数返回值

成功:返回字符c

失败:返回EOF

备注

putchar(c)等价于putc(c,stdout)

fgets函数与fputs函数

乐声一起动心弦,百感交织情亦悬,分连顿跳声不断,不尽此曲誓不停。

所需头文件

#include

函数原型

char* gets(char* s)

char fgets(char* s, int size, FILE * stream)

函数传入值

s:要输入的字符串

size:输入字符串长度

stream:要输入的文件流

函数返回值

成功:返回输入的字符串s

失败:返回NULL

备注

gets()是一个不推荐使用的函数,因为调用者在使用gets()时不能指定缓存的长度,这样就可能造成缓存越界(如若该行长于缓存长度),写到缓存之后的存储空间中,从而产生不可预料的后果

对于fgets()函数,必须指定缓存的长度n

此函数一直读到换行符为止,但是不超过n-1个字符,读入的字符被送入缓存

该缓存以空字符\0结尾

所需头文件

#include

函数原型

int puts(FILE * stream)

int fputs(FILE * stream)

函数传入值

s:要输出的字符串

stream:对应的文件流

函数返回值

成功:返回字符串s

失败:返回NULL

开天辟地F2组合

fopen函数与fdopen函数

他们作为Linux王国里面的两位混音小王子,fopen注重于把控音轨,fdopen更擅长于把控音源,两者的相互合作造就了一首首激动人心的音乐

所需头文件

#include

函数原型

FILE* fopen(const char* path, const char* mode)

函数传入值

path:包含要打开的文件夹路径及文件名

mode:文件打开状态

函数返回值

成功:返回指向FILE的指针

失败:返回NULL

所需头文件

#include

函数原型

FILE* fdopen(int fd, const char* mode)

函数传入值

fd:要打开的文件描述符

mode:文件打开状态

函数返回值

成功:返回指向FILE的指针

失败:返回NULL

传入值mode参照表

参数名

参数说明

r 或 rb

打开只读文件,该文件必须存在

r+ 或 r+b

打开可读写文件,该文件必须存在

w 或 wb

打开只写文件

若文件存在则将数据清空

若文件不存在则创建该文件

w+ 或 w+b

打开可读写文件

若文件存在则将数据清空

若文件不存在则创建该文件

a 或 ab

以附加方式打开只写文件

若文件不存在则创建该文件

若文件存在则将数据追加到文件尾

a+ 或 a+b

以附加方式打开可读写文件

若文件不存在则创建该文件

若文件存在则将数据追加到文件尾

备注

如果使用了带b的mode则会告诉函数打开的文件为二进制文件,并非文本文件

京剧大师FC(关闭文件)

fclose函数

fclose是公认的京剧大师,其中巧妙的收音吸引力无数的观众前来。

有一次她接受了fopen和fdopen的挑战,最后胜在自己气息斗过了他们混音器的电量

所需头文件

#include

函数原型

int fclose(FILE * stream)

函数传入值

stream:指向 FILE 对象的指针

函数返回值

成功:返回0

失败:返回EOF

移动steam流指针FFR团

fseek、ftell和rewind组成了一个强大的唱、跳、Rap团队,其中fseek擅长从乐章的任何一个地方起唱(通过whence定位),ftell随着fseek唱的位置而跳起相应的舞蹈(定位指针当前的位置),rewind则能通过Rap去指挥其他人回到乐章的开头(设定流的文件位置指示为文件开始),他们的乐曲几乎完全停不下来,一次就能唱好几天。

fseek函数

所需头文件

#include

函数原型

int fseek(FILE * stream, long offest, int whence)

函数传入值

stream

指向 FILE 对象的指针

offest

偏移量(有正负)

whence(起始点)

SEEK_SET:文件开头 + offset(一般为正) 为新读写位置

SEEK_CUR:当前读写位置 + offset 为新读写位置

SEEK_END:文件结尾 + offset(一般为负) 为新读写位置

函数返回值

成功:返回0

失败:返回-1

ftell函数

所需头文件

#include

函数原型

long int ftell(FILE *stream)

函数传入值

stream:指向 FILE 对象的指针

函数返回值

成功:返回标识的当前位置

失败:返回-1

备注

用于取得当前的文件位置,调用成功则返回当前文件读写位置,若出错则为-1

rewind函数

所需头文件

#include

函数原型

void rewind(FILE *stream)

函数传入值

stream:指向 FILE 对象的指针

函数返回值

备注

用于设定流的文件位置指示为文件开始,该函数调用成功无返回值

rewind()等价于fseek(stream, 0, SEEK_SET)

麦克风的赞助商(头文件)

本届FX乐曲时代所有参赛选手所使用的麦克风具有以下赞助商提供

#include//没有我,你们什么歌都唱不出来

如果觉得这篇文章还不错的话,就点个赞收藏一下,感谢您的观看

看完标准I/O操作,不妨再来看看底层I/O操作吧!

文件底层I/O基本操作——东写西读南开北关中位移_莫韵乐的Linux英雄传

如何科学养一只鸽子为你飞鸽传书——程序间异步通信_莫韵乐的Linux英雄传

linux从当前目录打开fx,文件标准I/O基本操作——FX乐曲时代_莫韵乐的Linux英雄传...相关推荐

  1. 文件标准I/O基本操作——FX乐曲时代_莫韵乐的Linux英雄传

    文件标准I/O基本操作--FX乐曲时代 在Linux王国的和平年代里,优秀的函数们纷纷踏上了成为直播网红的不归路,造就了最为辉煌的FX乐曲时代 在Linux的文件操作中标准I/O操作与底层I/O操作的 ...

  2. 文件底层I/O基本操作——东写西读南开北关中位移_莫韵乐的Linux英雄传

    文件I/O基本操作--东写西读南开北关中位移 Linux王国曾经有那么一个风起云涌的年代,而在那一个年代里就有那么五位人中龙凤掀起无数的波澜,人们称他们为东写西读南开北关中位移 在Linux的文件操作 ...

  3. 如何科学养一只鸽子为你飞鸽传书——程序间异步通信_莫韵乐的Linux英雄传

    如何科学养一只鸽子为你飞鸽传书--程序间异步通信 程序间异步通信--其本质都只是将信息从A端到B端的传递,只要通信双方都做好发出信息和接收信息的准备就可以实现飞鸽传书 接下来看一下怎样如何科学养一只鸽 ...

  4. ls——Linux王国中的皇家侦探_莫韵乐的linux王国英雄传

    ls--Linux王国中的皇家侦探 ls使用说明 命令名 命令语法 命令说明 常用选项 参数说明 ls ls[参数][路径] 列出目录内容 无参数 列出当前目录下的文件,包括以.开头的隐藏文件 -a ...

  5. cd——Linux王国中的导游_莫韵乐的linux王国英雄传

    cd--Linux王国中的导游 cd使用说明 命令名 命令语法 命令说明 路径 路径说明 cd cd[路径] 切换到指定路径 路径 分为绝对路径和相对路径 - 移动到上一个访问的目录​ ~ 移动到该用 ...

  6. Linux简单知识点梳理(持续更新中)_莫韵乐的Linux王国

    Linux简单知识点梳理(持续更新中) Linux系统特点 特点 开放性 多用户 良好的用户界面 提供丰富的网络功能 设备独立性 可靠的系统安全 良好的可移植性 ##### Linux系统体系结构 名 ...

  7. 如何高效放鸽子——线程的创建_莫韵乐的Linux王国

    如何高效放鸽子--线程的创建.等待和销毁 前文再续,书接上一回 今天我们将会采访一位放鸽子高手,探讨如何高效地放放鸽子 记者:您好,真是百闻不如一见,没想到传说中的鸽王相貌平平却有如此大的能耐 鸽王: ...

  8. find——Linux王国中的侦探助手_莫韵乐的linux王国英雄传

    find--Linux王国中的侦探助手 find使用说明 命令名 命令语法 命令说明 参数 参数说明 find find[查找路径][寻找条件][操作] 命令用于按照指定条件来查找文件 -name 匹 ...

  9. rm——Linux王国中的狙击手_莫韵乐的linux王国英雄传

    rm--Linux王国中的狙击手 rm使用说明 命令名 命令语法 命令说明 选项 选项说明 rm rm[选项][路径] 删除指定文件或文件夹 无参数 删除指定路径的文件,不能直接删除目录 -i 删除文 ...

最新文章

  1. 7 centos 设置jvmgc_centos7配置java环境变量
  2. 服务器查看gpu状态_服务器GPU使用情况查看命令详解
  3. matlab保存figure图像中所有的点的坐标
  4. opencv4-图像操作
  5. hive 前7天标准差_为啥科目三考试前只让练7天?教练实话实说:这是为你们好...
  6. linux中文输入法配置
  7. 微信公众帐号迁移流程指引
  8. macOS Catalina 以上版本使用不了 PPTP协议的(shimo 无法正常使用)
  9. arduino/Mixly心知天气
  10. BoxSup: Exploiting Bounding Boxes to Supervise Convolutional Networks for Semantic Segmentation
  11. phonopy制作shengBTE的FORCE_CONSTANTS_2ND
  12. Linux命令整理(二)
  13. 从零开始了解5G 纤亿通浅谈5G
  14. win10电脑耳机没有声音 如何在不重启电脑情况下耳机重新有声音
  15. 香港大学计算机授课型硕士(MSc)申请经验分享
  16. .metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\问题
  17. OA成为中国制造企业的最大挑战
  18. 为什么电脑邮箱收不到邮件,怎么回事?
  19. 攻防世界:crypt(RC4)
  20. 商城注册表单使用html

热门文章

  1. CRC原理详解(附crc16校验代码)
  2. 网络爸爸 v8.1.9.22 官方
  3. 最大限度地提升你的笔记本显卡性能
  4. vue端计算大文件的sha256
  5. MSN的邮箱,真不好用!
  6. 微软副总裁沈向洋:三十年科研路,我踩过的那些坑
  7. 小米3连续快速点击android版本四次后出现屏幕是红的咋耨,小米3怎么打开usb调试...
  8. 3Dmax怎么学习?
  9. FPGA的学习:HDMI显示器驱动设计与验证
  10. 洛谷P3406 海底高铁题解