三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Git及进程概念

Git及进程概念

1.版本控制器Git

Git 就是给文件夹做时光机器+多人协作记录本,专门管理代码/文件的历史改动:
保存每一次修改快照、随时回退到任意历史版本、多人改同一份文件不会乱、能分开开发再合并。

把你的项目文件夹当成一篇Word文档:

1. 没Git:改一遍保存一遍文档v1.doc、文档v2.doc,文件杂乱,删错内容找不回,两人同时改文档会覆盖内容。

2. 有Git:

• 每次写完重要内容,打一个存档节点(commit),记录:改了什么、谁改的、时间、备注;

• 想改错了,一键跳转回v1、v3任意版本;

• 别人改文档时,各自拿副本改,最后把改动合并到一起,自动标记冲突地方。

git安装:

在centos7下:sudo yum install git

在ubuntu下:sudo apt install -y git

四大工作区域:

1. 工作区:你电脑里看得见的项目文件夹,正在编辑的文件

2. 暂存区(stage):临时中转站,把要提交的改动挑选打包

3. 本地仓库:存在你电脑里的所有历史版本快照

4. 远程仓库(Gitee/GitHub/GitLab):云端备份仓库,用来多人共享、跨设备同步

比如我们要将两个.c文件放入git仓库

git add test.c

git add test1.c 此时,我们不会在git仓库看到这两个文件,他会先放入暂存区

如果要真正放入:git commit -m "新增两个源文件"

再有本地到远端:git push

调试

众所周知,我们有debug模式和release模式

Linux下我们编译好的代码,无法直接调试!

gcc/g++ 默认的工作模式是release模式

所以我们在建立Makefile的时候就要给尾端带上-g 形成debug

那么我们在linux下的调试工具可以用gdb,但是gdb有许多不方便的地方,所以我们可以下载cgdb

b 行号 :打断点

d 断点编号:删除断点

info b :查看断点信息

disable 断点编号:使断点无效,但还有痕迹

enable 断点编号:使能,使断点又有效

c:继续执行,用于多个断点,执行的区域是2个断点所包围的

untill 行号:快速跳转到想要执行的行1

dispaly 变量:看值

undisplay 变量编号:不想看了

watch 变量:可以呈现新旧值

set var 变量:可以直接改变量值

r:运行程序

我们会开始学习Linux的系统部分

可以分为:1.进程概念

2.文件系统

3.线程

进程相关概念

加载是因为要先从外设加载到内存

从一个一个管理发展成用链表进行管理

进程的概念不是从磁盘加载到内存这个过程

而是由对可执行程序的代码和数据进行管理和提取属性所形成的结构+自己的代码和数据

PCB在linux下叫做struct task_struct

在头文件中要包含#include<sys/type.h>

getpid 系统调用 我的pid

kill -9 你的pid:就可以杀掉进程

ls /proc:通过文件方式查看内存

chdir:更改进程的路径

子进程由父进程创建

ppid:父进程id

fork:创建子进程

子进程return 0

← 返回列表