1.2 Linux随手简记之文件IO(二)

五、文件类型

文件类型

  • 常规文件:普通的文本或二进制文件
  • 目录文件:用于存储其他文件或目录的容器
  • 字符文件:用于存储字符数据的文件,如终端设备文件
  • 块文件:用于存储二进制数据的文件,如磁盘分区文件
  • 链接文件:类似于Windows中的快捷方式,指向另一个文件或目录

六、系统调用与库函数

系统调用

  • 系统调用是操作系统提供的接口函数,用于访问底层硬件资源或执行特权操作。例如,open、close、read、write等都是系统调用。

库函数

  • 库函数是对系统调用的封装,提供程序的可移植性。例如,printf、fopen、fclose等都是库函数。库函数通过调用系统调用来实现功能。

七、缓冲区

缓冲区概念

  • 缓冲区是为了减少对IO设备的直接访问次数而设置的内存区域。缓冲区可以减少磁盘I/O次数,提高系统效率。

缓冲区类型

  • 全缓冲:缓冲区满时才输出到磁盘。
  • 行缓冲:遇到换行符时输出到磁盘。
  • 不带缓冲:直接输出到磁盘。

八、标准IO

标准输入输出

  • 标准输入(STDIN): 通常是键盘输入,文件描述符为0。
  • 标准输出(STDOUT): 通常是显示器输出,文件描述符为1。
  • 标准错误输出(STDERR): 通常是显示器输出错误信息,文件描述符为2。

标准IO函数

  • getchar、puts等用于标准输入输出。

缓冲区大小

  • 标准IO的磁盘文件缓冲区大小一般为4096字节。
  • 标准输出的全缓冲区大小为1024字节。

九、文件IO与标准IO

文件IO

  • 文件IO又称系统IO,是指直接使用系统调用进行文件操作。
  • 文件IO不提供缓冲机制。

标准IO

  • 标准IO是对文件IO的封装,提供了缓冲机制。

十、编译错误告警

常见编译错误告警

  • 未声明变量:error: ‘errno’ undeclared (first use in this function)
  • 函数隐示声明:warning: implicit declaration of function ‘strerror’
  • 参数类型不匹配:warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long int’

解决方法

  • 包含对应头文件。
  • 显示声明函数。
  • 使用强制类型转换。

 

c8d42512eee5476cb84f6c260586c8f7.png

 

  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式&机器人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值