目录
进度条
学习过程
自主实现:
Linux的git操作
.gitignore
.git
git add .
git commit
git push
git log
git status
git pull
进度条
学习过程
首先创建源文件,这个源文件就是我们要写的进度条的定义
接下来,我们创建文件Makefile,在这个文件中,我们来实现依赖关系和依赖方法
依赖关系:myproc依赖于myproc.c
依赖方法: 通过myproc.c的源文件通过编译汇编链接形成对应的可执行程序myproc
.PHONY表示对于clean,我们可以重复使用
clean没有依赖关系,也就是不需要其他文件也可以执行。
clean的依赖方法是删除myproc
我们对源文件myproc.c这样写
我们先来测试makefile写的是否正确。
make默认执行的是Makefile中的第一个指令。
完成了编译链接形成可执行程序,我们对可执行程序进行调用。
我们成功打印出hello world ,表示我们的makefile的书写没有错误。
接下来,我们用多文件的形式写进度条
我们创建三个文件,两个源文件main.c和process.c以及一个头文件process.h。
在process.h中,我们写一个防止头文件被多次包含,并且写一个进度条函数的声明。
在process.c中,我们主要完成进度条函数的定义。
在main.c中,我们主要完成进度条函数的调用。
我们使用vim对Makefile内容进行编辑。
我们要形成的文件叫做ProcessOn,我们的依赖方法是两个源文件。
注意:当源文件和头文件在同一个目录里面,我们就不需要把头文件也写入依赖关系之中,编译器会帮我们寻找头文件。
我们的依赖方法是通过main.c和process.c两个源文件以及未写出来的process.h一个头文件经过编译链接形成可执行程序ProcessOn
我们使用make
我们多出来了一个可执行程序ProcessOn
我们进行执行
证明我们写的多文件是没有问题的。
对于我们的依赖方法,我们这样写也是可以的。
我们创建一个数组bar,数组的元素个数为101,我们先把数组全部初始化为0,当cnt小于等于100时,我们以字符的形式打印数组,并对数组赋值,每次进入while循环都会休眠一秒,我们进行调用。
但是我们打印的结果却是这样:
原因是我们打印的时候误加上了\n
我们去掉这里的\n
这时候,我们执行代码
却又什么都刷新不出来。
原因是printf打印的数据被放在了缓冲区上面,假如我们要显示输出,我们需要使用fflush刷新一下缓冲区。
刷新标准输出
但是我们却又发现打印的速度不均匀,打印的速度是越来愈快的。
原因是我们每一次输出就会将前一次的数据也进行输出。
所以我们可以使用/r,表示回车(回到这一行的开头)
我们进行调用
这时候,我们是的速度是均匀打印的了。
但是我们发现刷新的速度太慢了,我们有没有办法加快刷新速度呢?
我们查看usleep指令
usleep和sleep的作用类似,不同点在于sleep的单位是秒,而usleep的单位是微秒,而一秒等于10^6微秒。
假如我们想要实现5s打印完毕
我们成功实现
接下来,我们实现最简单的进度条
%%表示显示%,我们进行调用展示
我们也可以多一些显示方式:
例如:
我们让进度条的数字后面的加一个动态的旋转。
我们再让动态条多几种格式
我们可以通过修改n值来使符号发生改变
这里的N我们可以在Makefile中进行修改
表示在编译链接形成可执行程序之前,已经设置了N为3
我们可以把N修改成为4,查看结果
这时候符号变成了加号。
自主实现:
main函数:
process.c文件
process.h
Linux的git操作
首先,我们创建一个学习Linux的仓库
接下来,我们点击克隆/下载,复制仓库链接
使用https这个复制方法
接下来,打开xshell
输入git clone+复制的链接
接下来,我们输入git的用户名和密码
然后克隆成功,我们使用ll显示文件
这个learn -linux就是我们本地的仓库,我们使用cd指令进入该仓库的目录
我们使用ll显示全部文件的详细信息
我们发现,我们本地的仓库缺了一个文件
这个.开头的文件是隐藏文件,我们需要使用ls -al才能看到这个隐藏文件
.gitignore
我们使用vim来查看这个文件的内容
我们可以发现,这个文件中的内容全部都是后缀,这个.gitignore文件起的作用就与这些后缀有关。
.gitignore文件中的内容中出现的后缀对应的文件,即使我们上传到远端,远端也不会被同步。
总的来说.gitignore文件中出现的后缀对应的文件是被忽略的。
.git
这个.git对应的文件就是我们的本地仓库,我们可以使用tree命令以树状结构的形式显示一下。
所以git仓库,本质上就是.git文件中的内容,把文件上传到远端本质是将你的.git中的文件同步到远端gitee上。
我们把一个目录上传到我们的learn.linux文件中。
git add .
我们使用git add .
表示我们把新增加的process文件添加到本地仓库.git中。
接下来,我们使用commit命令,提交的意思
git commit
格式为git commit -m '信息',这里的信息是不能胡乱写的。
commit的意思是提交,不是将代码提交到远端,而是把新增的变化的代码提交到本地仓库.git
add是吧这些文件放到了.git的临时区域,而commit是直接把文件提交到了本地仓库。
git push
git push相当于把本地仓库和远端的仓库进行同步。
这时候,我们的远端就成功上传了该文件。
git log
git log显示我们的提交日志
这就是为什么git commit -m这里的显示信息我们不可以乱写的原因。
git status
git status可以显示仓库状态
git pull
假如我们对远端的仓库进行重命名,实质上是进行了修改,然后我们在本地仓库也对process文件中的内容进行修改
我们多打印一行换行。
然后我们使用git commit 和git push
这里就会显示出现了冲突,我们需要使用git pull
git push是本地的同步远端,那么git pull就是远端同步本地。
这时候,我们就把远端的仓库同步到了本地
然后我们重复git commit git push即可。
我们这里就完成了修改。