【无标题】IO 基础知识点

IO:

标准IO : 库函数(ANSIC 系统调用+缓冲区,可移植性很强,执行效率较高)

例如:printf scanf fopen fclose fread fwrite fgetc fputc fgets fputs

文件IO:系统调用(posix 从用户空间进入到内核空间的一次过程,效率比较低,每发生一次系统调用,就会调用一次内核)

例如: open close read write

标准IO fopen的用法:

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

功能:打开一个文件

参数:

pathname : 打开的路径和名字 (字符指针)

mode: 打开的方式

r: 以只读的方式打开文件,将光标定位在文件的开头

r+: 以读写的方式打开文件,将光标定位在文件的开头

w: 以只写的方式打开文件,如果文件不存在就创建,如果文件存在就清空文件

w+: 以读写的方式打开文件,如果文件不存在就创建,如果文件存在就清空文件,将光标定位在文件的开头

a: 以只写的方式打开文件,如果文件不存在就创建,如果文件存在就将光标定位在文件的结尾

a+: 以读写的方式打开文件,如果文件不存在就创建,如果文件存在就将光标定位在文件的结尾

返回值:成功返回FILE的指针 失败返回NULL

错误码的原理: 应用层的 fopen 会调用到底层的sys_open ,底层sys_open执行失败的时候,会将错误码给程序中的 error变量,可以通过 error这个变量获取底层的错误信息。

错误码在内核中是负数,return -ENOENT;

perror: 直接打印错误信息,并且结尾自动补\n

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值