首页
学习
活动
专区
工具
TVP
发布

我的C语言

专栏成员
58
文章
5893
阅读量
15
订阅数
【C++】常用数据结构纲要(简易版)
如果让我现在来看的话,数据结构是什么,我觉得就是数据存储的一种方式,在特定条件要求之下存储的数据能够在我们需要的条件下实现高效的优化。换简单的话说,这就是像是,你即使在你自己的书房中找自己的书本,都可能比你去图书馆问图书管理员找到一本特定的书的时间长,因为图书馆存储书的时候是会根据特定的方式去存储(换句话说这时候的数据就像是按照特定的一种数据结构存储,而你自己的却像是没有做过处理的数据)。 所以学习数据结构是为了方便对于不同数据然后解决不同问题时候的加快速度和效率的方式。
薛定谔方程难
2024-10-12
990
【Linux】模拟实现一个shell
一段时间的没有更新是由于最近开学期间比较的忙,同时也是由于刚开学的几门课才学习的时候有点迷糊,需要在学校课堂上花的时间更多了,所以才没有更新的,求放过。
薛定谔方程难
2024-10-01
1130
【Linux】基础IO认识(2)
上一篇文章中已经介绍了打开还有关闭的系统调用,但是还有一些的调用没有讲到,现在就简单的讲解一下吧。
薛定谔方程难
2024-09-18
910
【Linux】基础IO认知
事实上,我们在C语言的学习中了解的文件并不是真正的文件。从语言角度来说,我们没有真正的理解文件的含义 。又由于所有的语言几乎都能够对文件就行操作,但是每一个语言都不相同,谁给的勇气让他这么做呢?那一定是操作系统啊,在操作系统方面上的相同,让文件操作有着多种的可能,所以我们想要真正的理解文件,我们就得从操作系统上来理解。 但是我们还是,首先回顾先回顾一下代码的层次。
薛定谔方程难
2024-08-09
1270
由浅入深的了解进程(6)---地址空间
其中当父子进程之间的g_val改变之后,为什么即使是不同的值了之后,两个进程中的g_val的地址还是一样的? 虽然不能够确认这是什么意思,但是这个绝对不是物理地址,如果是物理地址的话,一个地址修改过值了之后不可能还能表示另外一个值,所以这个应该是虚拟地址。
薛定谔方程难
2024-08-07
730
【Linux】进程控制
在Linux中创建进程的话通常也就两种方式,一个方法是创建可执行程序,然后通过我们的./的操作让进程创建。还有一种方法就是在程序代码过程中写fork函数,再父进程的状态下,创建子进程。 fork返回值返回两次,对于父子进程返回的值不相同,如果需要,我们可以通过if,else来分流,让父子进程在拥有相同代码的基础上实现不同的任务。子进程fork返回0,父进程返回值是子进程的PID。 进程:内核的相关管理数据结构(task_struct+mm_struct+页表)+代码和数据。其中的代码是共享,数据是写时拷贝的。 所以进程调用到fork的时候内核就需要这样做, 1、分配新的内存块和内核数据结构给子进程 2、将父进程的部分数据结构内容拷贝至子进程 3、添加子进程到系统进程列表中 4、fork返回,开始调度器调度 因此,由于代码不会相互影响,数据会在改变的时候发生写时拷贝并且父子进程都拥有属于自己的相关内核的数据结构。所以这样的进程拥有独立性的特点。 也是一个进程崩溃不影响另一个的原因。 所以为什么父进程返回的是子进程的PID,子进程的返回时0? 因为父进程得到子进程的PID的话,就能够尽可能方便管理,控制子进程,包括后续的杀掉进程,回收进程。 fork创建失败也是很常见的,失败的原因: 1、系统中有过多的进程 2、实际用户的进程数超过了限制 其中对于进程来说是两个部分,那么这两个部分是哪一个部分先创建的呢?先有内核的相关管理数据,然后才有的代码和数据。 这种状况在现实中也有,就比如说,你去找工作,找到工作之后收到offer之后,对于那个公司来说,在你人还没有到公司报到的时候,就已经算是创建好你的档案了,只有在你真正的抱到结束之后,才算是真正的员工,这里的报道,相当于就是你人去了,相当于上面的数据和代码本体,然后收到offer的时候,算是已经创建了PCB等一系列结构体。
薛定谔方程难
2024-08-07
660
【Linux】进程替换
为什么我们执行我们的程序,最后跑起来的确实ls的命令? 所以execl的作用是让我们(进程)用exec*函数,执行起来新的程序。 会替换掉原本的程序,执行我们新调用的程序。
薛定谔方程难
2024-08-07
790
由浅入深的了解进程(5)--环境变量
在上一篇文章中简单的介绍了环境变量,但是没有讲述的比较全面了,所以现在再写一篇来介绍环境变量。
薛定谔方程难
2024-08-04
590
由浅入深的了解进程(4)---优先级,命令行参数,环境变量
和生活中的概念其实是差不多的。优先级在进程中的定义是指定进程获得CPU资源的先后顺序。如果换一个视角的话,优先级的本质也就是在操作系统中的进程PCB结构体中的一个变量表示的是优先级的先后,用整形来表示,几个不同的进程相互比较整形的大小就能够实现优先级的概念。数字越小的优先级越高。 优先级 vs 权限。权限问题是决定能不能,但是你有优先级了,也就是说明你已经能够有权限了。 例子: 假如你带着饭卡去食堂排队,这说明什么,你已经拥有饭卡,拥有能够在食堂吃饭的权利,所以你才有等待排队的过程,如果连饭卡都没有的话,那么也就相当于直接没有权限。这个排队的过程其实也能够看作是优先级的过程。
薛定谔方程难
2024-08-04
690
由浅入深的了解进程(3)
所谓的进程状态也就是Linux系统中struct task_struct结构体中的各个属性/变量所表示的状态的综合。 在Linux操作系统中,进程的定义在kernel中的源代码是
薛定谔方程难
2024-08-02
820
由浅入深的了解进程(2)
上一篇文章中从冯诺依曼体系结构聊起,再到操作系统,如果忘记了之前的这两个知识,可以i回去看一看,现在我们将要重点开始进程了!
薛定谔方程难
2024-08-02
970
由浅入深的了解进程(1)
大多数常见的计算机,类似笔记本或者是台式电脑,包括不常见的计算机,类似服务器,大多遵循冯诺依曼体系。
薛定谔方程难
2024-07-31
820
Linux中的gdb调试
在Linux命令行中,我们还不知道怎么调试我们编写的代码。按照通常情况来说的话,Windows版本下我们编写代码有debug和release版本,那么Linux下也应该是有这两个版本的,那么我们该如何操作的呢? Linux中gcc/g++出来的二进制程序,默认是release模式。 所以我们需要在gcc/g++的过程中需要加上一些指令。
薛定谔方程难
2024-07-30
1350
快速介绍git(Linux)
故事介绍:你是一个大学生,你上课需要交一分实验报告,教你的老师比较负责,所以说,每次的实验报告他都会看的很仔细,非常的认真看你的报告,所以也比较难通过。正好在这样的基础之上,你有一个室友,你的室友血气方刚,刚刚上大学,很兴奋啊,所以有一次老师刚刚布置完实验报告的作业,他就马上写完去交,可是并不如意。老师说,虽然你这样这么快的写出来很好,但是还是需要修改修改的,然后室友就回去修改了。连着好几次的修改,可是到最后老师都还是有点不满意,这样的话,老师实在不行了,就和你的室友说,那还是第二次给我的报告的样子交给我吧,可是这下,你的室友无语了,这怎么找到第二次报告,我还记得第二次报告是什么样子的? 而你—张三,在看到你的室友这样子以后,知道了你去交的时候不能每次都修改的同时还没有保留原稿,以防万一老师说实在不行还要原来的时候,我们还找不到原稿了。 所以如果是我们自己交的话,每次都要保留一下原稿,这样的行为,在计算机上的话也就是版本控制。
薛定谔方程难
2024-07-29
730
Linux的Makefile进度条
那为什么我们需要定义变量呢?就像是在C语言中的宏一样,以后的这个基本就不会改变了,就只是会在定义的时候发生变化,这样能够简化操作。学着学着就能够感受到好处了!
薛定谔方程难
2024-07-29
540
Linux项目中自动化构建工具-make/Makfile
难道说每次C语言代码写好之后都需要去编写gcc命令,如果有上百个文件去构建的话,那不得麻烦死了。所以有没有简单的做法呢?有!答案就是make/Makefile。
薛定谔方程难
2024-07-27
1000
Linux下Centos7中的gcc/g++
可能对于没有配置过的centos来说,会无法编译成功。为什么呢?那是由于gcc的版本在默认的情况之下是取了一个适中的版本,不算太新,正好又不能编译for循环,所以导致这样不能进行编译。 如果想要编译的话,可以根据提示信息,进行改写一下gcc命令
薛定谔方程难
2024-07-27
860
Linux中vim的基本介绍和使用
如果我面想要在Linux上编写代码的话,我就需要vim来帮助我们编写代码。但是vim并不像是在Windows上的vs集成软件把所有的东西都集成起来但是呢,如果不进行配置的话,vim和其他是相互独立的,vim就是写代码的编辑器,编译代码就是gcc/g++的编译器,调试代码就有gdb的调试器。自动化构建就有make和makefile构建的工具。
薛定谔方程难
2024-07-25
1080
Linux中的yum
在这篇文章的结尾介绍了共享文件,但是还有一些问题。前文已经说了不能让该共享文件在任何一个用户的家目录里,只要不在这里,其他位置能在(最好是root进行创建)。问题就是,如果多人共享文件的话,那怎么才能让别人没有办法进去,防止别人妨碍用户之间的文件共享,实现指定人员的允许访问呢?
薛定谔方程难
2024-07-25
690
Linux权限(2)
对于Linux权限讲了很多部分在这篇文章中如果看过的话可以复习,没看过的话一定要看,不然权限的理解就不透彻了。
薛定谔方程难
2024-07-25
690
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档