自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 git internal 三个主要对象

这个时候就算你在工作目录删除了test.txt文件,没关系,你可以从object database中恢复某个版本的内容到文件中。在这里我们不在工作目录创建文件,而是直接手动创建一个BLOB object,并且手动的将它存储到git database。drwxr-xr-x 7 root root 4096 7月 11 00:38 .git/创建一个空目录,不是空的也行,但这个目录之前没有被git管理过,即没有.git目录。当然你能在终端上看到文件内容,也就可以利用管道把内容输出到文件中,进行保存。

2024-07-11 11:19:34 591

原创 git internals 1--.git目录介绍

这些规则适用于你不希望包含在共享的 .gitignore 文件中的情况,例如本地生成的临时文件或目录。:有些忽略规则你可能不希望包含在仓库的 .gitignore 文件中,因为 .gitignore 文件通常是和仓库一起共享的,而 info/exclude 文件则是本地的,不会被推送到远程仓库。假设你有一个 Git 仓库,并且你不希望将一些特定的本地文件包含在版本控制中,但这些文件规则又不适合放在共享的 .gitignore 文件中。文件:这是一个本地的忽略文件,它不会被推送到远程仓库,只影响当前仓库。

2024-07-05 12:00:19 280

原创 C语言从命令行提取程序名

在一些项目中,我们需要在项目的bin目录中生成可执行文件,除了参数处理外,有个很重要的过程就是获取程序名,如下是比较严谨的获取程序名的方式,来源于PostgreSQL。关于静态编译检查:

2024-07-04 10:58:23 911

翻译 linux内存管理-2-初期memblock分配器

内核在启动时通过E820机制获得到可⽤的内存地址范围后,还需要将这些内存都管理起来,以应对后⾯系统运⾏时 的各种功能的内存申请。内存分配器包括两种。刚启动时采⽤是初期分配器。这种内存分配器仅仅只为了满⾜系统 启动时间内对内存⻚的简单管理,管理粒度较粗。另外⼀种是在系统起来后正常运⾏时采⽤的复杂⼀些但能⾼效管 理4KB粒度⻚⾯的伙伴系统,是运⾏时的主要物理⻚内存分配器。在初期分配器中,在Linux 的早期版本采⽤的是 bootmem。但在 2010 年之后,就慢慢替换成了 memblock 内存 分配器。

2024-07-02 20:43:20 16

翻译 Linux内存管理-1-物理内存初始化

但其实操作系统在刚刚启动的时候,对内存的可⽤地址范围、NUMA分组信息都是⼀⽆所知。在计算机的体系结构 中,除了操作系统和硬件外,中间还存在着⼀层固件( firmware)。固件是位于主板上的使⽤ SPI Nor Flash 存储着的软件。起着在硬件和操作系统中间承上启下的作⽤。它对外提供 接⼝规范是⾼级配置和电源接⼝( ACPI,Advanced Configuration and Power Interface)。其第⼀个版本ACPI1.0是1997年的时候由英特尔、微软和东芝公司共同推出的。

2024-07-02 13:43:33 660

转载 linux文件描述符

linux文件描述符内容做个笔记。Linux 从诞生以来,一直用 struct task_struct 来表示进程/线程,用 struct file 表示打开的文件,用 struct inode 表示文件本身。struct file 和 struct inode 的区别在于,如果两次 open 同一个文件(比方说 web server 写 access log,你用 less 看这个 assess log 文件),会有两个 struct file 对象,指向同一个 struct inode 对象。

2024-06-26 23:04:03 10

原创 Makefile $%的使用

在Makefile中,$%是一个特殊的自动化变量,主要用于处理归档成员 (archive member) 的情况,即库文件中的成员文件。它在非常具体的情况下使用,通常在处理静态库(例如.a文件)时。

2024-06-17 13:52:17 141

原创 Makefile依赖问题-4自动依赖

我们用简单、粗暴、无脑的方式解决头文件依赖的问题,但是这种解决方式有几个缺点;1、比较容易想到的是,正儿八经的项目头文件都是比较多的,很容易出错。2、对照缺点,好的解决方案应该是能自动就不要手动:1、通过命令自动生成源文件.c对头文件的依赖。(什么命令?2、命令生成的依赖结果能够放到Makefile中。(怎么放?3、当头文件改动后,自动确认需要重新编译的文件。(怎么自动确认?

2024-06-10 23:47:12 960

原创 Makefile依赖问题-3

上述Makefile没有添加对.h的依赖,嗯。这个看$^,Makefile中的自动变量,表示依赖文件的集合。我上早八,更新了func.h,目标没更新啊,可是刚刚已经亲眼所见,依赖文件是累加的!出现问题:规则中依赖的文件更新了(prerequisites),但是目标没有更新,因此更新其中任何的依赖文件(prerequisites),都会更新目标。总结:目标是具体文件还是带有%要仔细了,最保险就是依赖文件写一行。本篇是关于依赖问题的第3集,还是写到哪儿算哪儿。这里的规则是被覆盖了!后边的规则覆盖了前边的。

2024-06-09 15:05:17 264

原创 Makefile 依赖问题-2

因此不是说你在vpath指定了头文件的路径,gcc就会去那个路径下找,不可能的,gcc属于recipe部分,是命令,但是make命令会因为依赖关系去相应的目录下找target: prerequisites对应的文件的。我们说编写Makefile的时候注意目标(target,目标在文件系统中是否会生成文件以及生成文件所在的位置)、依赖文件(prerequisites,确定依赖文件是否完整,以及确定这些个文件是否真的能决定目标的更新),以及这两者之间的关系。这里用的demo 1那个Makefile。

2024-06-09 02:16:38 364

原创 Makefile依赖问题-1

参考:https://juejin.cn/post/6844903687471497223https://www.cnblogs.com/cuckoos/articles/5049984.html这块知识有点太烦人了,顶不住,整理一下,省的到处翻了。。。预处理器将头文件中的代码直接插入源文件编译器只通过预处理后的源文件产生目标文件因此,规则中以源文件为依赖,命令可能无法执行。这里的没法执行主要是个人在写规则时,目标所依赖的文件没写全。因为目标是否更新主要看依赖和目标文件谁比较新。(在 Makefile

2024-06-06 18:01:47 478

原创 DB2表压缩

启用压缩功能,但不影响现有数据。:重新组织表,对现有数据进行压缩,并优化表结构。通过这两个步骤,可以确保表中所有数据(现有和新插入的)都被压缩,优化磁盘空间使用和查询性能。

2024-05-22 10:36:33 353

原创 git commit中author和commitor的区别

让我们用一个具体的例子来展示 Git 中的作者(author)和提交者(committer)之间的区别,并通过实际的 Git 命令来演示。假设 Alice 写了一些代码并创建了一个补丁文件,然后 Bob 使用这个补丁文件在他的 Git 仓库中创建了一个提交。在这个场景中,Alice 是作者,而 Bob 是提交者。

2024-05-20 17:53:39 262

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除