Linux进度条小程序
缓冲区问题
编译运行后发现延迟了两秒才出现数字,我们都知道程序中的代码执行是从上到下,sleep虽然是让系统休眠两秒,但为什么在printf函数的后方也能影响输出时间?
这是因为输入的内容先放进了缓冲区,没有显示出来,等程序结束了才刷新缓冲区显示出数据来。
如果想让这串数字立马显示出来可以这样写:
fflush(stdout)是立刻刷新缓冲区的意思,这里就会立刻将缓冲区的数字显示出来,然后等两秒钟这个程序才会结束。
这样也是可以的,因为后面的换行是放进行缓冲区,这会将包括 \n 之前的都立即刷新。
回车换行
其实回车和换行并不是一个东西:
回车:\r
换行:\n
回车换行:\r\n
回车是回到这一行的头部,换行是换到下一行,我们在按键盘上面按回车健其实是进行了回车换行,每一次回车都会换到下一行的开头去,你看键盘上面回车图标画的是先下,后左的箭头,就是先换行,后回车。
在语言层面 \n 就是回车换行,因为编译器对这里进行了特殊处理。
倒计时小程序
注意输出格式,2d是因为第一个输入的是10,计算机只知道1和0,认为是两个字符,所以后续的输入需要用2d才能完全覆盖掉第二个字符0
这样就完成了。
进度条程序
首先要清楚我们要将这个进度条设计成什么样子:
第一个[ ]中的是进度条,第二个[ ]中的是进度条百分比,第三个[ ]中的是读取进度条的时候总会有一个东西转来转去。
这次分三个文件,一个主函数文件,一个定义进度条函数的文件,一个头文件。
这里是makefile文件中的编译与清理操作。
然后来实现进度条的代码:
主要利用了缓冲区。
git
什么是git
我们使用软件的时候会发现软件都有各种版本,想象一下如果某一个软件更新之后还不如上一个版本,如果没有保留历史版本会是一个非常糟糕的情况,这个时候就需要历史版本和各种改进的版本,这样方便总结经验也方便发生更新不如上一个版本的情况。
那么全世界都有这种需要代码保留历史版本的情况,如果能够有一个专门负责管理个人或者某个公司项目的历史版本的软件就好了,这里叫做版本控制器,也就是现在的git。
那么为了更加方便不需要客户端只需要一个网站就能进行操作,也就是现在的gitee与github。
git的发展史
Linux之父——林纳斯·本纳第克特·托瓦兹,当时每天都会接受来自全国各地提交的代码,然后进行合并代码(也就是CV),因为这个工作很繁琐,所以就找到了一个版本控制器,但这个收费的,与Linux社区的理念不符合,但是这个公司的老板因为欣赏Linux这种开源行为所以就让Linux社区免费使用。
但是Linux社区的一些黑客和网络工程师因为好奇这个版本管理器就尝试破解这个版本控制器,结果被发现了,这个老板就不再让Linux社区免费实用了,最后林纳斯·本纳第克特·托瓦兹自己用2~3周写了一个版本控制器然后开源了。
这个版本控制器就是git。
git的基本操作
创建仓库与本地仓库建立联系
我常用的是Gitee.
首先要在这里新建仓库。
复制这个之后,在你Linux机器上输入指令:
git clone 你的gitee网址
这个操作是把远端仓库拉过来。
输入上面的指令会让你输入gitee的账户和密码,输入正确之后成功拉取远端仓库。
进入自己的仓库看看都有什么:
.git是本地仓库,本质就是一个目录,目录的内容是.git+其他内容。
上传到远端仓库就是通过本地仓库同步到gitee中。
隐藏文件.gitignore的作用就很大了,凡是在这个文件中后缀所对应的文件都无法上传到gitee:
LICENSE是开源许可证。
最后两个是英文和中文的说明文档。
Linux中git提交代码的三板斧
注意:当你第一次安装git时会提示你配置你的用户名和邮箱。
将提示的内容复制粘贴然后该双引号中的内容就就可以了。
这里将上面写的进度条代码上传试一下:
首先在本地仓库添加一个新目录,将进度条代码放进这个目录中
添加:git add .
这个指令是将新增目录添加到本地仓库里(临时仓库)。
或者是你指定的文件。
提交:git commit -m ‘日志’
只是本地仓库有代码,远端并没有。
推送:git push
这里显示推送到远端成功了。
添加成功了。
git基础指令
查看当前状态:
git status
他能告诉你当前目录有哪些目录被修改过,哪些被重命名过,哪些没被管理等等:
提交之后就发生了变化。
最后进行推送,然后回到上级目录进行查看:
本地和远端的信息时同步的。
对仓库中的内容进行重命名
git mv 被更改文件的名字 更改之后的名字
这个是我之前推送了一个test文件
之后添加,提交,推进。
这里修改成功了。
同步远端和本地仓库数据
如果在远端仓库中修改了我们提交的内容,本地再想提交新内容的时候会发生冲突,这时候就要靠这一行命令解决问题:
git pull
这是git push之后的报错。
使用git pull之后也是一堆报错,不过这里退出就可以了。
然后再进行git push就可以了。
紫色地方是我再远端新加的内容。
删除远程仓库中的内容
git rm 你要删除文件名
然后提交,推送。
记录git使用的日志:
git log
越往上越靠近你最近操作的时间。