标准IO概念及特点

14 篇文章 0 订阅
  • 标准IO

C语言IO常用函数总结_io函数分类_666lc666的博客-CSDN博客

文件类型有哪些?

bcd-lsp

‘b’:块设备文件(sd卡 硬盘等)qq

’c‘:字符设备文件;(usb  鼠标等)

‘d’:目录文件;(蓝色)

‘-’:普通文件;(白色)q'q

‘l’:软链接文件;(相当于快捷方式)

‘s’:套接字文件;(

‘p’:管道文件;(

  1. 标准IO概念

C库中定义的一组用于输入输出的函数。(C语言)

  1. 标准IO特点

1)有缓冲机制:通过缓冲机制来减少系统调用,提高效率。

2)围绕“流”进行操作,“流”用FILE*表示。 

  • FILE是数据类型(结构体),FILE*结构体指针。
  • 文件内部有文件指针,文件用文件指针操作,流只是起到了一个媒介的作用,封装原来的接口等,开辟缓冲区,减少系统调用。
  • 索引使用:1.vi -t要查找的内容 (查找宏,数据类型等)

输入前面序号,回车

  1. 继续追踪

将光标定位到要追踪的内容上,ctrl+] (右中括号)

回退:ctrl+t

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

三个流是结构体指针变量。

4)标准IO一般只用于操作普通文件

  1. 缓冲机制

1)全缓冲:跟文件相关

刷新条件:

程序正常结束

缓冲区满刷新

强制刷新:fflush

2)行缓冲:跟终端相关

刷新条件:

\n

程序正常结束

缓冲区满刷新

强制刷新:fflush

#include <stdio.h>

int main(int argc, char const *argv[])
{
    //1.\n刷新缓冲区
    // printf("hello world\n");

    // while (1)
    //     ;
    //2.程序正常退出
    // printf("hello world");

    // while (1)
    //     ;//不让程序结束
    //3.缓冲区满刷新
    //有大小,当将缓冲区写满数据时,
    //再继续向缓冲区中写数据,
    //会将原来缓冲区中满了的数据全部拿出来,打印到终端
    //新写的数据,可以继续向里面写
    //测试缓冲区大小 kb 1kb=1024byte 1b=8bit
    //缓冲区大小1kb
    //方法一:
    // for(int i=0;i<300;i++)
    // {
    //     printf("%4d",i);
    // }
    // while(1);
    //方法二:
    //缓冲区的结束地址-起始地址=缓冲区大小
    // printf("hello"); //开辟缓冲区
    // printf("%d\n", stdout->_IO_buf_end - stdout->_IO_buf_base);
    // 4.强制刷新
    printf("hello");
    //fflush(stdout);//强制刷新
    fflush(NULL);//强制刷新所有的输出缓存
    while (1)
        ;
    return 0;
}

return 是函数的正常结束

ctrl +c是函数的不正常结束

3)不缓冲:没有缓冲区,标准错误

scanf--》标准输入缓冲区---》终端输入

标准输入缓冲区有内容 不进入终端输入

printf--》标准输出缓冲区---》终端

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

满山的猴子我的腚最红

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

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

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

打赏作者

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

抵扣说明:

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

余额充值