【linux】文件IO

本文探讨了Linux系统中标准IO与文件IO的主要区别,包括缓冲机制、函数来源、操作入口以及移植性。文件IO通过系统调用如open、close、read、write等进行,与操作系统密切相关,而标准IO由C库提供,具有更好的移植性。同时,文章介绍了open函数的参数、文件描述符及其在进程控制块中的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标准IO和文件IO的区别:
区别1:是否有缓冲机制。标准IO有缓冲(全缓冲、行缓冲、不缓冲),文件IO无缓冲。
区别2:函数的来源不同。标准IO来自于标准C库,文件IO来自于linux内核,系统调用。
区别3:两种IO操作文件的入口不一样。标准IO操作的文件入口是文件流,文件IO操作的文件入口是文件描述符。
区别4:标准IO是凌驾于所有操作系统之上的IO,直接用的C库函数,而文件IO是跟操作系统有关的,用系统调用。
库函数可以说是对系统调用的一种封装,使用库函数代码的移植性好。
不同操作系统的系统调用接口并不兼容,程序移植时工作量大。
1.系统调用
    系统调用对于应用程序最大的作用在于:
        以统一的形式,为应用程序提供了一组文件访问的抽象接口,应用程序不需要关心文件的具体类型,也不用关心其内部实现细节。
常用的系统调用IO函数有5个: open,close,read,write,ioctl,此外还有非系统调用IO函数lseek,系统调用IO都是不带缓冲的IO。

2.open/close函数
open()函数:用于创建一个新文件或打开一个已有文件,返回一个非负的文件描述符fd。
0、1、2为系统预定义的文件描述符fd一般是从3开始。
flags参数一般在O_RDONLY(只读打开)、O_WRONLY(只写打开)和O_RDWR(读、写打

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值