- 博客(34)
- 收藏
- 关注
原创 基础C++知识的十一大要点
当调用函数时,编译器会优先调用类型最精确的函数,如果没有则会做一定程度的类型提升或者是标准转换,而不是全部直接报错,但具体优先级与编译器有关,因此最优选择最准确的参数即可,否则容易产生函数调用的二义性。内联函数也会被翻译成二进制指令,调用语句不会生成跳转指令,而是直接把函数的二进制指令替换调用语句,这样既没有跳转也没有返回,而是直接往下执行被调函数,这种函数称为内联函数。7、可以定义指针数组,但不能定义引用数组(可以定义数组指针,也可以定义数组引用,可以定义函数指针,也可以定义函数引用)
2022-09-23 20:21:12
455
原创 【C++基础知识】
3、C++的标准库头文件不带.h ,iostream 意为in & out stream,在C++中输入、输出被封装流操作,C语言中的头文件还可以继续使用,但是建议在C标准头文件名前加 c 并去掉.h ,因为这样的头文件中删除了大量不使用的宏,并重新添加到名字空间中,防止在C++中命名冲突。b、结构中的结构成员可以是成员变量还可以是成员函数,结构变量、结构指针分别使用 . 或 -> 访问成员函数,在成员函数中可以直接访问本结构的其它成员变量、成员函数,不再需要 . ->
2022-09-23 20:12:05
244
原创 手把手教你写生产者消费者模型
缺点:该策略实现比较麻烦,而且释放已经申请的资源可能会导致前一阶段的工作无效,反复地申请释放资源也会增加系统开销、占用CPU和寄存器、内存等资源。: 多个进程或者线程之间互相等待对方手中的资源,在得到新的资源之间不会主动释放自己手中的资源,这样如果形成了等待环路,称之为死锁现象。当一个进程或线程已经占用一个不可被剥夺的资源,并且在请求新资源无法被满足时,则释放已经占用的资源,等待一段时间后重新申请。给每个资源起编号,进程或线程按照编号顺序依次请求资源,并且只有拿到前一个资源,才能继续请求下一个资源。
2022-09-19 19:07:32
722
原创 Linux网络编程函数详解
基本特点:socket是一种接口技术,抽象成一个文件操作,可以让同一台计算机的进程之间通信,也可以让不同计算机的进程通信(网络通信)
2022-09-07 18:48:36
263
原创 Linux消息队列与信号量
2、如果信号量的值等于0,说明没有资源可使用,此时进程进入休眠,直到信号量的值大于0,进程会被唤醒,执行步骤1。概念:消息队列是由内核负责维护管理的链式数据队列,不是根据先后顺序出队,而是根据消息类型进行收发数据。概念:由内核管理的一个"全局变量",用于记录共享资源的数量,限制进程对共享资源的访问使用。1、如果信号量的值大于0,说明可以使用资源,使用时需要信号量-1,然后再使用。3、当资源使用完毕,把信号量的值+1,正在休眠的进程就会被唤醒。
2022-09-02 09:30:11
307
原创 Linux子进程回收、管道文件、共享内存C应用详解
是指两个或多个进程之间交互数据的过程,因为进程之间是相互独立的,为了进程间协同工作就必须实现进程间交互数据。
2022-09-02 09:11:20
290
原创 Linux进程管理概念与C语言命令代码详解
创建的子进程一定先返回,此时子进程并没有创建成功,需要加载一个可执行文件替换当前子进程当前的所有资源,当替换完成后子进程才算创建成功,此刻父进程才返回。 孤儿进程:父进程先于子进程结束,子进程就变成了孤儿进程,孤儿进程会被孤儿院(init守护进程)领养,init就是孤儿进程的父进程。 一个进程可以被另一个进程创建,创建者叫做父进程,被创建者叫子进程,子进程被父进程创建后会在操作系统的调度下同时运行。 僵尸进程:该进程已死亡,但是它的父进程没有立即回收它的相关资源,该进程就进入僵尸态。...
2022-08-30 20:19:57
213
原创 Linux信号处理详细介绍
建立在早期的信号处理机制(1-31)的信号是不可靠信号,意味着它不支持排队,可能会丢失,如果同一个信号连续产生多次,进程可能只相应一次,但是多个不同的信号,会按照时间顺序从后往前相应。2、当信号处理完后可能会返回产生信号的代码继续运行,如果我们捕获并处理段错误、算术异常等信号可能会产生死循环,正确的处理段错误、算数异常信号应该是备份数据并直接结束程序。当信号产生时,内核会在其维护的信号表中为对应的进程设置与该信号对应的标记,这个过程叫做递送。功能:设置要屏蔽的信号、这些信号是存储在信号集里面。......
2022-08-29 19:46:46
567
原创 平衡二叉搜索树详解
待删除的节点左右子树非空,根据左右子树高度,选择高的一边,如果是左高则选择左子树中的最大值替换待删除节点的值,然后删除左子树中的最大值节点,反之则选择右子树的最小值节点进行同样操作。如果一个有序二叉树呈现接近单支状(类似链表),它的查找效率接近链表,因此只有达到平衡时它的查找效率最高。前提是有序的二叉树,它的左右子树的高度差不超过1,而且它的所有子树也满足这个条件。由于节点的值受限,因此只能通过调整达到有序,而不能进行值的修改。待删除的节点是叶子节点,直接删除。...
2022-08-27 15:43:56
439
原创 全面Linux下的文件操作命令
每个文件必须拥有唯一一个inode以及若干个block块,读写文件需要借助目录的block中记录的文件名和inode号找到该文件的inode,通过inode读取block。 硬链接文件没有自己的inode和block,只是在不同目录下复制了一份源文件的inode信息,通过inode信息访问源文件的block。 软链接会建立自己的新的inode和block,软链接的block存储的是源文件的inode信息、文件名。功能:从目录流中读取一条记录信息,该条信息记录了目录中一个文件的信息。...
2022-08-26 19:33:59
465
原创 震惊!指针与堆还能这么用!
指针与堆的使用 复习: 一、什么是堆内存 二、为什么要使用堆内存 三、如何使用堆内存 四、malloc的内存管理机制 五、使用堆内存需要注意的问题 六、内存清理函数 七、堆内存定义二维数组...
2022-07-20 08:00:00
239
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人