自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux线程

更准确的定义是:线程 是“一个进程内部的控制序列”。如果计算密集型线程的数量比可用的处理器多,那么可能会有较大 的性能损失,这里的性能损失指的是增加了额外的同步和调度开销,而可用的 资源不变。线程是进程的执行分支,线程出异常,就类似进程出异常,进而触发信号机 制,终止进程,进程终止,该进程内的所有线程也就随即退出。• 健壮性降低 ○ 编写多线程需要更全面更深入的考虑,在一个多线程程序里,因时间分配 上的细微偏差或者因共享了不该共享的变量而造成不良影响的可能性是很大 的,换句话说线程之间是缺乏保护的。

2025-08-08 14:19:40 847

原创 Linux信号捕捉与穿插中断

外部设备就绪后会给中断控制器发送中断,此时中断控制器会通知CPU,CPU得知中断后获取中断号,然后CPU保护现场,并根据中断号--就是函数指针数组的下标执行中断处理历程(函数),执行完毕后恢复现场,处理中断完毕,继续之前的工作。比如此时进程正在执行自己的代码,此时CPU正在进行计算a/0,会导致溢出错误,此时CPU自己内部触发中断并得到中断号,CPU根据中断号索引函数指针数组--中断向量表IDT执行相应的函数,这种情况称做异常。我们知道信号的处理并不是立即处理的,而是在合适的时候进行处理。

2025-08-01 15:55:13 702

原创 Linux进程信号

一、生活角度的信号 你在网上买了很多件商品,在等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取快递。那么在在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不是一定要立即执行,可以理解成“在合适的时候去取”。在收到通知,再到你拿到快递期间,是有一个时间窗口的,在这段时间,你并没有拿到快递,但是你知道有一个快递已经来了。本

2025-07-28 17:23:58 984

原创 用VScode连接云服务器失败原因以及解决方案

这里就是因为我们重装系统的时候本地记录没有及时更新导致的。解决方案是在windows的cmd窗口中输入:ssh-keygen -R 【你的云服务器的ip地址】 就可以了,然后再次进行连接就可以了。在将云服务器从centos切换到ubunto之后,我的VScode连接云服务器一直失败,之前在centos的时候是直接连接就成功了,我查了好久(一晚上就解决了这一个问题)。这个问题简单,但是我真的查了好久,因此写下来以供后人快速排查。服务器密钥已变更,但本地。

2025-07-10 00:08:49 224

原创 Linux-动静态库-静态库

再次强调-L选项说明的是去哪里找库的问题,-l选项说明的是找什么库的问题。这次我想到一个办法,这次我不把源文件給张三因为只要一給那么我就暴露了,这次我把所有的.c文件先预处理编译为同名的.o文件,然后把所有的.o文件交给张三,张三拿着这些.o文件同样可以运行,然后我把.h文件当作函数参考手册一并交给张三。然后又过了一段时间,老师又布置了类似的作业,然后张三又找到我,我这人吧脸皮又比较薄,毕竟张三请我吃了那么多次饭,我又不好意思拒绝,但是上次被他连累扣了不少分,这次该怎么办呢?静态库就是.o文件打了一个包。

2025-06-25 20:54:21 637

原创 Linux--软硬链接

考虑这样的一个情景,我们要执行的目标程序并不在当前目录中,此时如果要执行这个可执行文件的时候就要指定全路径很麻烦,此时我们通过创建一个软链接文件链接到目标可执行文件,此时我们就可以在当前目录下直接./软链接文件就可以了,相当方便。可以看到code.c和code-hard的inode->number是相同的,都是524487,所以可以知道硬链接并不是一个独立的文件,这一点是和软链接的根本性的不同的地方。提到文件我们就要考虑到文件的内容和文件的属性,还有一个问题就是软链接它是用来干什么的。

2025-06-22 22:10:19 360

原创 数据结构之——单链表

链表的实现与应用

2024-10-05 00:31:32 1074 6

原创 力扣刷题--移除元素

一起来刷题叭~

2024-10-02 14:48:26 389 1

原创 C语言实现数据结构之——顺序表

7、顺序表的删除数据(尾部删除),我们要判断是否有数据能够让我们进行删除,也就是size不能为0,接下来我们要去删除最后一个数据,有人可能会让他设置为0之类的,事实上我们只需要让size–即可,这样的话无论后续的打印还是其他操作,那个元素实际上并没有对操作产生任何的影响。这里注意我们定义的是动态顺序表,也就是大小并没有确定下来的,并且可以改变的顺序表,与之对应的有静态顺序表,也就是大小在编译的时候就已经确定下来的。第三个是capacity,指的是arr数组的容量大小,也就是arr数组的开辟的空间字节数。

2024-10-02 12:28:36 990 2

原创 C语言中的结构体

C语言中的结构体

2024-08-29 15:05:25 696 3

原创 gerchar()和putchar()函数介绍

而putchar(ch);则与printf("%c",ch);值得一提的是:由于这些函数只处理字符,所以它们比更通用的scanf()和printf()函数更快、更简洁。过去,我们已经熟悉了运用printf()和scanf()进行输出和输入,在C语言中,实际上有一对专门针对字符的(注意是字符)的输入/输出函数-------getchar()和putchar()。以我们熟悉的printf()和scanf()来过渡到putchar()和getchar()函数。和 scanf("%c",&ch);

2024-08-19 12:43:21 258

原创 单身狗--C语言

运用到这里来,把相同的两个数组成一对,也就是n^n=0;剩下的那个单身狗与0按位异或,则等于剩下的那个数的值。It's magic.这里运用到的两个核心的方程就是:(^——按位异或)0^n = n;并且运算符合交换律;题干描述:在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字。数组中有:1 2 3 4 5 1 2 3 4,只有5出现一次,其他数字都出现2次,找出5。从C按位运算符的角度来看的话,实际上问题会简单许多。

2024-08-18 23:10:01 247

原创 二分查找算法

越来越多的迹象表明在函数中的第一个参数是数组名,是数组首元素的地址。今天我们要写一个二分查找函数来在一个已知的数组中查找出指定的数值。

2024-08-18 20:43:25 244

原创 关于内存的一点想法

据我了解的是,地址就是像房间号一样,也可以理解为可能性,比如32位地址总线,对于每一根线都有0和1两种可能,32位就有2^32可能性,将每一种可能性转化为一个地址,正好像二进制,因此再把二进制转化为16进制。正如我们所看到的那样,再32位地址总线的环境下,我们所打印出来的地址已经能说明很多的问题了。OK,这是根据VS编译器的结果所反向推导的,但是问题却出来了。

2024-08-15 18:12:53 251

原创 初识C++,请多多指教

别急,静下心来我们慢慢认识它.首先,举个例子,现在又两家公司分别写了一个大型程序的两个部分,然后要把他们组合起来的时候发现这两个部分都包含一个相同的函数lxh(),这样,在使用lxh()函数的时候,编译器就不知道到底该使用哪一个了,会出现歧义.这个时候命名空间就派上用场了,我们可以定义一个空间,在这个空间中把lxh()給分清楚,比如字节公司的lxh()函数我们可以写作zijie::lxh(),而百度公司的lxh()函数我们可以写成baidu::lxh().其中"::"称作是域作用限定符.

2024-08-02 18:40:30 278 4

原创 利扣刷题1

l3指向的是l1的最后一个位置,注意这里的最后一个是实际的nums1所能容纳的数据的最后一个。1:如果是l1变为负数,此时l2还有值没有放进nums1中,并且由于数组nums1是非递减的,因此只需要将nums2中剩下的前几个数据分别放入nums1的前几个空间就可以了,注意这里的空间大小,nums1能存储m+n个数据,正好是nums1和nums2中的有效数据的和。我们回归代码本身,在循环内部,每一次要么是l1--,要么是l2--,只能执行一个,因此不可能同时变为负数。2:如果是l2先变为负数呢?

2024-07-23 15:39:36 335

原创 关于整数和浮点数在内存中的存储

整数浮点数在内存中的存储

2024-06-10 14:28:39 1698

原创 你真的了解for循环吗

在第一次执行完毕之后,执行a++这个语句,之后继续判断a<=200这个语句,如果真则进入循环体内,反之,则不进入循环体内。事实上,我们知道当a=200时执行最后一次循环体,之后a还要再+1,变为201,而201>200,因此退出循环,因而可以知道最后for循环结束时的a为201。大家可以看一下这里的if(b==a)由于之前我们已经知道for循环最后b是超越临界的那个值,这里,如果是素数,则b在循环内没有值能满足整除条件,最后返回的就是a,因此这里只要加上这一条语句,就能打印出来了。

2024-04-16 20:36:06 591

原创 关于我是谁

大学里我的专业是地质工程,但是我并不喜欢这个专业,从高中开始,我就有一个想法就是创作一款自己的游戏,这也正是为什么我选择编程的这条路的原因,说实话是想分享,我觉得让别人玩自己做的游戏那是一件很有意思的事情,关于游戏的内容以及构思我目前已经有了雏形了。别人总说首先要把自己的专业课学好,然后再去搞其他的东西,但是我是一个很固执的人(可能这也是我不擅长和别人打交道的原因),对于不喜欢的东西宁愿挂科也不愿去搞,对于偏爱的事物即使可能回馈并不大,但是我就愿意去做,这是我的性格。

2024-03-29 14:41:57 329

空空如也

空空如也

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

TA关注的人

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