当前位置: 首页 > news >正文

做阿里巴巴网站运营腾讯广告投放平台

做阿里巴巴网站运营,腾讯广告投放平台,网件路由器无线中继,免费咨询会计问题文章目录 1.文件缓冲区1.1介绍1.2缓冲文件系统1.3冲刷函数fflush1.4认识linux下的缓冲区 2.linux小程序的实现2.1 回车\r和换行\n2.2倒计时程序2.3进度条小程序sleep/usleep代码运行结果 1.文件缓冲区 1.1介绍 为缓和 CPU 与 I/O 设备之间速度不匹配,文件缓冲区用以…

文章目录

  • 1.文件缓冲区
    • 1.1介绍
    • 1.2缓冲文件系统
    • 1.3冲刷函数fflush
    • 1.4认识linux下的缓冲区
  • 2.linux小程序的实现
    • 2.1 回车\r和换行\n
    • 2.2倒计时程序
    • 2.3进度条小程序
      • sleep/usleep
      • 代码
      • 运行结果

1.文件缓冲区

1.1介绍

为缓和 CPU 与 I/O 设备之间速度不匹配,文件缓冲区用以暂时存放读写期间的文件数据而在内存区预留的一定空间。使用文件缓冲区可减少读取硬盘的次数。

1.2缓冲文件系统

系统自动地在内存为程序中每一个正在使用的文件开辟一块文件缓冲区。

  • 从内存向磁盘输出数据,先送到内存中的缓冲区,缓冲区装满后一起输送到磁盘上。
  • 从磁盘向计算机读入数据,从磁盘文件中读取数据输入到内存缓冲区(充满缓冲区),从缓冲区逐个地将数据送到程序数据区(程序变量等)。
  • 缓冲区的大小根据C编译系统决定。

1.3冲刷函数fflush

int fflush( FILE *stream );
将缓冲区内数据写到stream 指定文件。
成功返回 0 
错误返回 EOF 
高版本vs无法使用
fclose关闭文件时也会刷新缓冲区#include <stdio.h>
#include <windows.h>
int main() 
{FILE* pf = fopen("test7.txt", "w");if (!pf){perror(fopen);return 1;}fputs("abcdef", pf); //数据输出到buffer//此时文件中无内容Sleep(10000);        //睡眠10sfflush(pf);          //刷新缓冲区Sleep(10000);        //睡眠10s//此时数据到达文件fclose(pf);pf = NULL;return 0;
}

1.4认识linux下的缓冲区

在这里插入图片描述

在这里插入图片描述
在linux下gcc编译这两段代码时 结果是不同的 左边先输出后睡眠 右边先睡眠后输出

c语言不是从上到下一行一行执行的吗?

确实是的 实际上printf先于sleep执行但是sleep执行完后这个程序才结束 才会输出信息

为什么执行流到printf时 不直接显示以及为什么左边加了换行就能先显示?

c语言存在输出缓冲区(一段内存空间) 显示器设备一般的刷新策略是行刷新 即碰到\n就把\n之前的所有的字符显示出来 所以左边代码先显示 后边代码存入到缓冲区 直到程序结束才显示

当一个程序执行会自动打开stdin srdout stderr三个标准IO流

在这里插入图片描述

如何在没有换行符的情况下让他执行到printf时就显示?

在这里插入图片描述

#include <stdio.h>
#include<unistd.h>
int main()
{printf("hello linux!");fflush(stdout);sleep(3);return 0
}

2.linux小程序的实现

2.1 回车\r和换行\n

在这里插入图片描述

老式键盘的Enter: 实际上是 换行+回车[C语言中的\n也是]

在这里插入图片描述

#include <stdio.h>
#include<unistd.h>
int main()
{int count = 5;while(count){printf("count是: %d\n",count);count--;sleep(1);return 0;}
}

可以正常输出

#include <stdio.h>
#include<unistd.h>
int main()
{int count = 5;while(count){printf("count是: %d\r",count);count--;sleep(1);return 0;}
}

不输出任何内容

2.2倒计时程序

#include <stdio.h>
#include<unistd.h>
int main()
{int count = 5;while(count){printf("count是: %d\r",count);fflush(stdout);count--;sleep(1);return 0;}
}

每执行一次printf 将要输出的信息输出到缓冲区 当执行fflush函数时 将信息从缓冲区刷到显示器 之后\r回车 光标回到行首 count–

2.3进度条小程序

sleep/usleep

在这里插入图片描述

在这里插入图片描述

代码

在这里插入图片描述

运行结果

linu-vim-c-bar

http://www.r43.cn/news/486.html

相关文章:

  • 网站做乘法表seo网站推广经理
  • 新闻门户网站建设杭州百度推广代理商
  • 公司网站开发需要多少钱搜索关键词
  • 做网站三大主流框架广州网站seo地址
  • 成都建站价格快速排名程序
  • 未被列入失信被执行人名单查询石家庄seo外包公司
  • 做物流网站有哪些内容百度提交网址入口
  • 专业网站建设公司 1861web万网官网首页
  • 美容医疗手机网站模板2345王牌浏览器
  • 青岛做视频的网站设计2024年将爆发新瘟疫
  • 做我网站百度提交入口的注意事项
  • 代办经营网站备案网站统计分析工具
  • 电商网站设计推荐亿企邦公司网站模版
  • 整站优化和单词网站推广具体内容
  • dw做的网站不显示2345网址导航电脑版
  • 网站后台这么做视频教程全球搜索引擎排行榜
  • 有没有免费做任务赚钱的网站种子搜索器
  • 外贸wordpress建站百度热议排名软件
  • 封丘县建站塔山双喜事件营销案例
  • 门头设计一键生成免费网站的优化从哪里进行
  • 视差网站怎么在百度推广自己的网站
  • 网页布局代码排名优化培训
  • 玉器网站模版武汉好的seo优化网
  • 爱做电影网站seo范畴有哪些
  • 传媒公司网站php源码一周热点新闻
  • 网站建设 方案书快速排名优化推广价格
  • 景区网站建设策划案百度一下你就知道官网下载安装
  • 推荐个在广州做网站的网络营销的主要方式
  • 东莞网站建设公司百度推广登录网站
  • .net cms网站管理系统做一个简单的网站需要多少钱