IO:标准IO以及缓存

part0:背景了解

IO   

 标准IO

文件IO(文件IO是操作系统运行进程和硬件交互的一种方式,使用更广泛的IO接口)

文件属性获取

目录操作(打开目录、读取目录内容、关闭目录等)

库:

静态库(由编译器链接的代码库,不随运行时动态加载)

动态库(共享库,在运行时加载到内存中,可以被多个程序共享)

进程

进程:(运行时程序的封装,资源调度和分配的基本单位,实现了操作系统的并发。

线程:(进程中的子任务,是CPU调度和分派的基本单位

进程间的通信:(不同进程之间进行数据交换和协作的机制

part1:标准IO

文件类型: b c d  - l s p

概念:c库中定义的输入输出函数

特点:

1.有缓冲区,通过缓冲减少系统调用提高效率

2.围绕进行操作 *FILE (FILE是结构体,描述操作文件信息)

3.默认打开三个流:stdin(标准输入)、stdout(标准输出)、stderr(标准错误)

part2:缓冲区

1.行缓存:与终端操作有关刷新条件:1.程序正常退出   2.\n刷新  3.缓存区满刷新

缓存区满刷新

int main(int argc,char const *argv[])
{
//printf("helloshiny");加‘\n’会让缓存区刷新
for(int i=0;i<257;i++)
printf("%4d",i);
while(1)
return 0;
}

计算缓存区大小

int main(int argc,char const* argv[])
{
printf("helloshiny");
printf("%d\n",stdout->_IO_buf_end- stand->_IO_buf_base);
return 0;
}

强制刷新fflush

int main(int argc,char const* argv[])
{
printf("helloshiny");
fflush(NULL);
while(1)
return 0;
}

2.缓存区:

1.正常退出2.\n刷新3.缓存区满刷新4.计算缓存区5.强制刷新

计算缓存区大小:
int main(int argc,char const*argv[])
{
printf("hello shiny");
printf("%d\n",stdout->_IO_buf_end- stdout->_IO_buf_base);
return 0;
}

3.全缓存:文件操作

刷新条件:1.正常退出2.缓存区满刷新3.强制刷新fflush

4.不缓存:比如输入错误直接报错不缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值