Linux_gdb_进程概念

news2024/11/24 9:08:22

目录

进度条

学习过程

自主实现:

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

 我们这里就完成了修改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

化工行业供应商协同管理系统:助力企业打造良好营商环境,提升运营效率

化工行业是我国工业发展的重要基础,也是国民经济发展和生活不可或缺的一部分。化工产品的更新换代,产业的不断升级,对原材料的采购也提出了更高要求。 由于精细化工行业原材料的质量和成本,与供应商的选择与资质具有重要的关联性…

[附源码]计算机毕业设计JAVAjsp医院网上预约系统

[附源码]计算机毕业设计JAVAjsp医院网上预约系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myb…

关于Python和自动化

最近碰到了好几次面试都需要问Python。 在这里我有一个误区,向各位面试官先陈述一下。 之前的时候,对C和C研究的更加多一点,再加上多年的自动化维护经验,自认为对po封装模式的理解,因此对于自认为对Python是十拿九稳&a…

[Spring MVC6]事务管理与缓存机制

Spring MVC 关于Spring与MaBatis事务管理,这里的事务管理类似于数据库中的transaction,基本操作也都一样。同时介绍了MaBatis缓存模式,特别是一级缓存与二级缓存。 希望对你有所帮助! 目录Spring 事务管理MyBatis 事务管理MyBatis 缓存模式一…

html实现个人空间主页(附源码)

文章目录1.设计思路1.1 欢迎界面1.2 屏保界面1.3 主界面1.4 我的项目界面1.5 我的日记界面1.6 我的日记管理界面2.效果展示和代码展示2.1 动态效果图2.2 主界面代码2.3 欢迎页代码2.4 屏保代码源码下载作者:xcLeigh 文章地址:https://blog.csdn.net/weix…

JavaScript算法 — 二叉树遍历

目录1、构造二叉树2、递归遍历3、非递归遍历3.1 先序3.2 中序3.3 后序1、构造二叉树 树节点: // 二叉树节点的构造函数 function TreeNode(val, left, right) {this.val (valundefined ? 0 : val)this.left (leftundefined ? null : left)this.right (rightu…

给好朋友用代码画一个爱心吧

目录 效果图 html爱心 python爱心 ​编辑 代码 html python 浅浅分析一下《燃烧我,照亮你》剧中的爱心代码 光棍节要到了,不给心意的人写个爱心代码? 话不多说,上才艺,这里有两种爱心,一种是html&a…

Unity功能—— 在VS中快速访问Unity API对应文档

声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。 Unity功能—— 在VS中快速访问Unity API对应文档 文章目录Unity功能—— 在VS中快速访问Unity API…

光点科技数据口袋数据填报系统满足多类型企业报表需求_光点科技

在招聘过程中,HR对数据处理存在一定的需求,手动整理繁杂的数据无疑是加大招聘工作量,因此,借助数据填报系统更好地进行处理数据工作,不失为帮助HR减轻招聘工作量的良方。 光点数据填报系统利用传统商业报表工具进行数据…

中国热泵空调行业发展趋势及投资风险研究报告

智研瞻产业研究院专注于中国产业经济情报及研究,目前主要提供的产品和服务包括传统及新兴行业研究、商业计划书、可行性研究、市场调研、专题报告、定制报告等。涵盖文化体育、物流旅游、健康养老、生物医药、能源化工、装备制造、汽车电子、农林牧渔等领域&#xf…

基于springboot二手交易平台

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,非前后端分离 前端技术:vue.jselementUI等框架实现 服务端技术:springbootmybatis-pl…

Linux服务器中配置tomcat的服务,并通过端口8888访问

引言: Tomcat是常见的免费的web服务器,前端服务很多都是通过tomcat部署的!所以多了解点肯定没坏处! 一、配置端口 1.防火墙策略中配置8888端口,并允许策略: 二、安装tomcat包 1.新建tomcat文件夹 进入 /usr/local,并新建文件夹…

弹框确认按钮,请求两个接口跳转刷新页面,并使用async和await将异步改成同步的数据?

前景&#xff1a;公司前后端不分离项目&#xff0c;使用的框架element-ui较低版本的&#xff0c;弹框确定按钮加载动态按钮的loading。 //插件 npm i element-ui -S效果图: 代码: <template><div><el-button type"text" click"dialogVisible …

Hive——操作数据库创建修改表(DDL数据定义)

DDL操作1. 数据库操作1.1 创建&查询数据库1.2 修改&删除数据库2. 表操作2.1 创建表2.2 内部表和外部表2.2.1 管理表2.2.2外部表2.2.3管理表与外部表的互相转换2.3 修改表1. 数据库操作 1.1 创建&查询数据库 定义&#xff1a; CREATE DATABASE [IF NOT EXISTS] d…

IDEA settings设置技巧,最常用快捷键,让你的编译器用更加得心应手

导读 每次下载安装新的 IDEA 以后&#xff0c;都免不了对该软件进行一些优化配置&#xff0c;以方便我们在使用的时候更加得心应手。一份趁手的设置&#xff0c;无疑能让我们的工作效率事半功倍。 碍于每次自己重装 IDEA 都需要去网搜一大堆文章去设置 settings&#xff0c;所以…

Vue框架的学习(Vue的基础指令操作二 V-For)第二课

今天的任务理解下面的几个指令操作 重点在V-for上 V-if V-else V-show V-For 本文章的重心放在V-For 从数据到数组到对象一步一步的去查找 底层的原理 v-show和v-if的用法看起来是一致的&#xff0c;也是根据一个条件决定是否显示元素或者组件 下面是 V-if V-else V-sho…

1. 云计算简介

1.2 云计算的定义和分类 云计算的定义 美国国家标准与技术研究院&#xff08;NIST&#xff09;定义&#xff1a; 云计算是一种模型&#xff0c;它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源&#xff08;例如&#xff0c;网络、服务器、存…

【记录】终端如何 进入conda(base) 环境,如何退出 conda(base)环境,终端快速进入Jupyter notebook的方法

目录一、终端 进入 conda&#xff08;base&#xff09; 环境二、终端 退出 conda&#xff08;base&#xff09; 环境三、终端进入 Jupyter notebook 的方法一、终端 进入 conda&#xff08;base&#xff09; 环境 --->> win R : 输入cmd 回车&#xff0c;进入终端界面。…

什么是微服务?怎么测试?今天一次性讲清楚...

01、什么是微服务 Adrian Cockcroft对微服务的表述&#xff1a;loosely couped service oriented architecture with bounded context。 这里涉及两个微服务的概念&#xff1a; loosely couped&#xff1a;松耦合 松耦合可以引申出其他概念&#xff0c;如各自独立&#xff0c…

坚持软件自主可控,打造国产化公文交换系统

编者按&#xff1a;软件自主可控是什么意思&#xff1f;企业如何对自己使用的软件做到自主可控&#xff1f;本文分析了软件自主可控的概念及意义&#xff0c;并通关相关案例展示了国产化低代码平台是如何助力企业打造公文交换系统的。 软件自主可控的意义 说到软件的自主可控&…