码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux 小程序————进度条


    目录

    引子

    缓冲区

    回车换行

    进度条小程序


    引子

    前期我已经和大家聊过Linux一些常用指令、权限、gcc翻译过程、make/makefile 等相关知识,今天结合这些基础知识来写一个Linux下的小程序。

    缓冲区

    在Linux目录下创建两个文件:makefile 和 project.c ,在project.c中写一个简单的打印hello world,并让其休眠2秒后打印。

     仔细看,左边helloworld后跟了 ' \n ' ,此时出去执行make,语句被直接打印出来;

    右边hello world后没跟 ' \n ',此时出去执行make,语句过了两秒才被打印出来。

    说明:

    1、程序执行默认是按顺序结构执行(没有判断、循环情况下),所以一定是printf 先于sleep执行,但是先执行 != 数据先显示,printf的确执行了但是没有显示出来而执行了sleep休眠。当sleep结束时才刷新的数据。

    2、sleep期间printf 一定执行完打印了,那数据在哪里呢?——在缓冲区。当sleep执行完,缓冲区的数据才打印到终端上。

    3、那为什么' \n '直接打印了?—— ' \n '是行缓冲,只要有,这一行包括前面的内容就打印到终端

    4、有什么办法可以在没有 ' \n '的情况下直接打印————fflush(stdout) 刷新标准输出流。

    回车换行

    1、回车:\r ,这里的回车不是我们口头上说的回车,口头上的回车其实是回车+换行。

    这里回车是让光标回到一行的开始(覆盖)

    2、换行:\n,换行是换到下一行的该位置。

    3、回车换行:\r + \n,即口头上的回车,跳到下一行的开头。

      老式键盘上的回车键意思就是回车+换行。

     根据这个结合上面的缓冲区,可以写一个倒计时小程序。

     注意:1、%2d \r,不用\n,因为倒计时需要在一行内执行,所以不需要换行,\r 让光标回退到一行开始处,会覆盖之前的内容。

               2、%2d,格式控制为2个字符位,否则修改的只是第一个字符位的内容。cnt = 10,%d倒计时就是10,90,80...   

               3、fflush(stdout)刷新标准输出流,否则将没有打印显示(因为缓冲区问题)

    进度条小程序

     接下来我们写一个进度条小程序,也是运用上面的知识。

     prograss.c:

  • 相关阅读:
    Eureka 相关配置及特性
    LA@特征值和特征向量的性质
    JS实时获取录音数据并播放
    Java核心技术面试题(附答案),纯手码,赶紧带走冲刺秋招
    Explore EP91H0 HDMI 1.4发射机和接收机
    Python机器学习bug:ValueError_ Expected 2D array, got 1D array instead
    使用CEF(七)详解macOS下基于CEF的多进程应用程序CMake项目搭建
    【JAVA】并发包中的 ConcurrentLinkedQueue 和 LinkedBlockingQueue 有什么区别?
    【JQuery】JQuery入门——JQuery 插件-validation
    M2DGR数据集各相机话题名与外参名的对应关系
  • 原文地址:https://blog.csdn.net/SAKURAjinx/article/details/127556413
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号