Linux_gdb_进程概念

目录

进度条

学习过程

自主实现:

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即可。

 我们这里就完成了修改。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值