进度条 —— 第一个linux程序

发布时间 - 2025-04-19 00:00:00    点击率:

windows系统下,我们通常认为回车和换行是一个概念,但实际上,换行是指移动到下一行的当前位置,而回车则是回到当前行的开头。

我们之所以将回车和换行视为同一概念,是因为在使用\n时,它同时执行了回车和换行的操作。

现在让我们看一下在Linux系统下以下两段代码的区别:

代码语言:C 运行次数:0

#include
int main(){
    printf("迟来的grown\n");
    return 0;
}

代码语言:C 运行次数:0

#include
int main(){
    printf("迟来的grown\r");
    return 0;
}

可以看到,\n\r的效果不同,但使用\r时,输出结果似乎没有显示。这是由于缓冲区的影响。

我们可以简单地理解为,输入输出操作并不是逐字符进行的(某些特殊情况除外),而是使用行缓冲区。

在行缓冲模式下,只有遇到换行符时才会执行真正的输出。因此,使用\r时,输出内容会暂存在缓冲区,直到程序结束时才会清空缓冲区。

代码语言:C 运行次数:0

#include
int main(){
    printf("迟来的grown\n");
    sleep(3);
    return 0;
}

代码语言:C 运行次数:0

int main(){
    printf("迟来的grown");
    sleep(3);
    return 0;
}

运行结果如下:

第一段代码先输出迟来的grown,然后休眠3秒; 第二段代码休眠3秒后,在程序结束时才输出迟来的grown

这两段代码的区别在于是否使用了\n,这也证明了行缓冲区的机制:遇到换行符时会刷新缓冲区内容(程序结束时也会刷新缓冲区内容)。

这是因为在Linux中,程序执行完毕后,光标位于行首,命令行信息会覆盖输出内容。

那么,我们能否通过一些操作来查看输出内容呢?

当然可以,我们可以使用fflush来刷新缓冲区(stdout)的内容。

代码语言:C 运行次数:0

int main(){
    printf("迟来的grown");
    fflush(stdout);
    sleep(3);
    return 0;
}


# linux  # windows  # ai  # 区别  # 迟来  # 换行  # 时才  # 结束时  # 两段  # 是一个  # 这是  # 是因为  # 也会  # 让我们 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  ,在苏州找工作,上哪个网站比较好?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  利用JavaScript实现拖拽改变元素大小  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel如何实现用户密码重置功能?(完整流程代码)  JavaScript数据类型有哪些_如何准确判断一个变量的类型  linux写shell需要注意的问题(必看)  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  如何快速查询网址的建站时间与历史轨迹?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何制作一个表白网站视频,关于勇敢表白的小标题?  韩国服务器如何优化跨境访问实现高效连接?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Laravel如何实现API版本控制_Laravel版本化API设计方案  java获取注册ip实例  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何在搬瓦工VPS快速搭建网站?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  香港网站服务器数量如何影响SEO优化效果?  使用spring连接及操作mongodb3.0实例  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel定时任务怎么设置_Laravel Crontab调度器配置  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  深入理解Android中的xmlns:tools属性  如何快速建站并高效导出源代码?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  Laravel如何生成URL和重定向?(路由助手函数)  Laravel如何实现模型的全局作用域?(Global Scope示例)  公司网站制作价格怎么算,公司办个官网需要多少钱?  Python图片处理进阶教程_Pillow滤镜与图像增强  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  EditPlus中的正则表达式 实战(2)  成都网站制作公司哪家好,四川省职工服务网是做什么用?  浅谈javascript alert和confirm的美化  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  如何在IIS7上新建站点并设置安全权限?  Python结构化数据采集_字段抽取解析【教程】  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?