代码+运行结果
文章平均质量分 76
A steria.
这个作者很懒,什么都没留下…
展开
-
Linux--TCP编程使用多进程处理并发
/有人连接,就会产生子进程,所以子进程会循环不断的产生,只要客户端一关闭,子进程就会退出,变成将死进程,所以将死进程也会不断的产生。利用fork产生子进程,父进程只参与创建子进程,创建完成后,用子进程来接受数据,父进程关闭,直到最后数据接收完毕,子进程才关闭。//第三次为执行服务器,再关闭一个个客户端,无客户端,只剩服务器阻塞。//能解决将死进程问题,但是不能用,//第二次为执行服务器,关闭一个客户端,只剩以一个客户端。//子进程还在接受数据,没有结束,wait就阻塞住了,原创 2023-03-27 20:23:34 · 526 阅读 · 0 评论 -
数据结构--循环链表
为什么要有循环链表、循环链表定义、循环链表和单链表的图示对比、循环链表和单链表的代码对比、.循环链表的操作、clist.h、clist.cpp、初始化plist、往plist中头部插入数字val、往plist中的尾部插入数字val、在plist中查找val值,找到返回该节点地址,失败返回NULL、删除plist中的第一个val、判断plist是否为空链表(没有数据节点)、获取plist长度,数据节点的个数、获取plist链表的pos位置的值、获取val的前驱、.获取val的后继、输出plist的所有数据原创 2022-11-26 19:29:58 · 868 阅读 · 0 评论 -
Linux--信号量共享内存
信号量接口、信号量共享内存原创 2022-11-25 21:11:44 · 1432 阅读 · 4 评论 -
Linux--信号量
信号量是一个特殊的变量,一般取正数值。它的值代表允许访问的资源数目, 获取资源时,需要对信号量的值进行原子减一,该操作被称为p操作。当信号量值为0时,代表没有资源可用,p操作会阻塞。释放资源时,需要对信号量的值进行原子加一,该操作被称为v操作。信号量主要用来同步进程。 信号量的值如果只取0,1,将其称为二值信号量。如果信号量的值大于 1,则称之为计数信号量。原创 2022-11-24 20:11:56 · 536 阅读 · 0 评论 -
数据结构--单链表
由于顺序表的插入删除操作需要移动大量的元素,影响了运行效率,因此引入了线性表的链式存储——。单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用地址连续的存储单元,因此它不要求在逻辑上相邻的两个元素在物理位置上也相邻。原创 2022-11-22 21:57:33 · 1314 阅读 · 0 评论 -
Linux--进程间通信、IPC、管道
1.管道简介|命令:举例:ps -ef|grep "sleep"两个进程通信,比如a,b进程,a向管道中写入数据,b读取数据;管道的分类:有名管道和无名管道区别:有名管道在任意两个进程间通信,无名管道在父子进程间通信;2.有名管道的创建创建的命令:mkfifo 管道名打开管道:open();读数据:read();写入数据:write();关闭管道:close();3.有名管道演示进程间通信思考如果进程 a 要将从键盘获取的数据传递给另一个进程 b, 用已具备的知识思考应该如何完成?原创 2022-11-22 20:53:18 · 126 阅读 · 0 评论 -
数据结构--不定长顺序表
1.不定长顺序表与定长顺序表相比不定长顺序表的区别在于我们可以通过扩容来进行增添元素的存储单元。2.结构是对定长顺序表的一种改进,在初始时开辟内存被利用完后,还要继续插入数据时,这时候据需要扩容。故顺序表的结构设计就要发生变化。原创 2022-11-21 21:20:29 · 259 阅读 · 0 评论 -
Linux--my bash
Linux--bash项目、命令的分类、内置命令、普通命令:、项目框架、.完整代码、总结原创 2022-11-21 19:54:36 · 310 阅读 · 0 评论 -
数据结构--线性表之顺序表
线性表(List):零个或多个数据元素的有限序列。线性表的数据集合为{a1,a2,…,an},假设每个元素的类型均为DataType。其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。在较复杂的线性表中,。在这种情况下,常把数据元素称为记录,原创 2022-11-19 17:36:23 · 844 阅读 · 0 评论 -
C++面试题之继承
【代码】C++之继承面试题。原创 2022-11-19 13:55:48 · 376 阅读 · 0 评论 -
C++之继承、派生
继承的概念与定义、继承的层次概念是计算机的重要概念、私有的能被继承,不能被访问、继承的三步骤、有继承和组合的构造顺序---内存布局、继承之下的赋值运算符重载7.一个类被多个类继承原创 2022-11-18 21:30:46 · 1180 阅读 · 0 评论 -
C++之函数模板、类模板、模板的特化
模板是c++的一种特性,允许函数或者类(对象)通过泛型(generic types)的形式表现或者运行,模板可以使得函数或类在对应不同的类型(types)的时候正常工作,而无需为每一种类型分别写一份代码。原创 2022-11-15 22:36:12 · 2928 阅读 · 0 评论 -
数据结构与算法--分治策略
分治的概念:把大规模变成小规模,不是将问题缩小!递归概念:若一个函数直接地或间接地调用自己,则称这个函数是递归的函数。(简单地描述为"自己调用自己")、分治的特征、步骤、栈的面试题、递归相关例题的1.分析:、阶乘可递归的定义为:、递归程序、图解递归过程(代码的调动过程)、.图解递归过程(栈帧的动态调动过程)、总结原创 2022-11-12 11:13:03 · 1169 阅读 · 0 评论 -
C++之static,静态变量
static的详解 关于初始化、内存、优点、指针、释放时机等问题。静态局部变量在全局数据区分配内存,局部变量在栈区分配内存。原创 2022-11-04 17:49:55 · 6550 阅读 · 0 评论 -
数据结构与算法--八大排序
1.基本概念:1.排序:2.需要掌握的点:3.稳定性:4.排序难点:2.分类:3.比较:1.稳定性:2.时间复杂度:3.空间复杂度:4.排序详解:1.选择排序--直接插入排序2.插入排序--希尔排序(Insert Sort)3.选择排序-简单选择排序(Simple selection sort)4.选择排序-堆排序(Heap sort)5.交换排序-冒泡排序(Bubble Sort)6.交换排序-快速排序(Quick-Sort)7.归并排序-(Merge sort)8. 基数排序(RadixSort)原创 2022-11-03 19:06:39 · 773 阅读 · 0 评论 -
Linux--信号signal、父子进程、SIGCHLD信号相关命令
Linux--信号signal、父子进程、SIGCHLD信号相关命令;信号名称 信号代号;15号信号和9号信号1.概念:2.信号的存储位置:3.常见的信号的值以及对应的功能说明:4.信号的值在系统源码中的定义:5.响应方式:6.改变信号的相应方式:(1)设置信号的响应方式:(2)默认:SIG_DFL;忽略:SIG_IGN;(3)默认响应方式:(4).自定义响应方式:(5)忽略:7.练习题目:8.15号信号和9号信号9.SIGCHLD信号(1)验证信号(2)处理僵死进程(wait结合信号)原创 2022-11-02 13:20:15 · 1502 阅读 · 0 评论 -
Linux--关于open、file、write、read、close的相关命令——操作文件的底层调用
Linux--操作文件的底层系统调用open:打开一个文件、read: 从文件中读取数据、write:向文件中写入数据、close:关闭文件、文件描述符、利用读写对文件进行负责、实现类似cp命令。原创 2022-11-02 12:17:51 · 1352 阅读 · 0 评论 -
Linux--bash、fork、exec、进程替换相关命令
Linux--bash、fork、exec、进程替换相关问题;bash详解、利用bash创建ps命令----execl的使用(结合fork)fork+exec()是Linux上创建新进程方式;原创 2022-11-02 12:08:15 · 627 阅读 · 0 评论 -
Linux--进程、进程替换、命令
注意,就是原来的程序换成了ps程序,但是PCB没有改变,但是PCB里面的有些值被修改了,比如pcb中程序的名字换成了新进程的名字;注意,"abc"可以, "/usr/bin/psxx"不可以;,如下:(2).execlp只给文件名,不需要给文件路径,可以去环境变量PATH所指的位置去搜索;echo $PATH(3).execle这个execle多了一个环境变量;(4).execvexecv系列把参数都放在了一个数组中,然后把这个数组传递进去即可;(5)execvp第一个参数只要文件名,原创 2022-11-01 21:51:55 · 400 阅读 · 0 评论 -
C++之函数指针、指针函数以及相关问题
指针、指针变量的定义、指针的分类、指针判定的右左法则、数组指针、指针数组、指针函数指针数组、函数指针、指针函数、扩展转移列表、函数指针数组考题原创 2022-11-01 21:31:14 · 396 阅读 · 0 评论 -
C++之运算符重载
1.运算符重载:1.可实现的对象2.定义运算符重载函数的一般格式:3.运算符的重载实际2.为什么要重载?3.前提:4.如何重载?5.默认6.指针作为数据成员7.字符串重载8.友元重载:重载输出原创 2022-10-31 21:09:28 · 525 阅读 · 0 评论 -
C++之函数重载
在C++中可以为两个或两个以上的函数提供相同的函数名称,只要参数类型不同,或参数类型相同 而参数的个数不同, 称为函数重载;函数重载的规则、函数重载的解析步骤原创 2022-10-31 19:43:34 · 1108 阅读 · 0 评论 -
C++之友元函数
友元函数:友元函数的定义、分类、三种友元函数举例,代码注意点,判断谁是谁的友元函数或类原创 2022-10-29 21:52:24 · 25132 阅读 · 5 评论 -
Linux--malloc、申请空间、申请是否成功、4G虚拟空间分布、父子进程相关代码及相关命令
1.进程在执行的过程中,malloc申请空间,不使用时,没有free就会出现内存泄漏;如果进程结束了,那么所有向操作系统申请的内存都会被回放(释放);2.申请1G或者更大空间,到底能不能成功?如果当前的物理内存剩余空间够用,那么申请的空间肯定能成功;如果物理内存不够,先看有没有虚拟内存,如果有,看虚拟内存加上物理内存能否满足申请的空间大小;sudo swapoff -a;关闭虚拟内存;sudo swapon -a;开启虚拟内存;3.32位操作系统进程的4G虚拟空间分布原创 2022-10-28 18:02:51 · 410 阅读 · 0 评论 -
Linux--文件、进程、fork、open、系统调用、库函数相关知识
Linux--文件、进程、fork、open、系统调用、库函数相关知识原创 2022-10-28 17:28:40 · 825 阅读 · 0 评论 -
C++深拷贝和浅拷贝
出现拷贝构造函数的原因、出现深拷贝的原因、深拷贝和浅拷贝的代码实现、代码分析、结果分析、执行过程分析、深拷贝和浅拷贝的区别、拷贝构造函数的总结原创 2022-10-24 19:55:31 · 576 阅读 · 0 评论 -
C++之拷贝构造函数详解:定义、参数类型、调用的3种情况
C++之拷贝构造函数详解:定义、参数类型、调用的3种情况原创 2022-10-18 17:35:05 · 1255 阅读 · 0 评论 -
Linux--僵死进程(僵尸进程)
僵死进程产生的原因或者条件、僵尸进程展示、僵死进程的危害、如何解决僵尸进程、子进程的退出码原创 2022-10-17 23:22:41 · 4485 阅读 · 0 评论 -
Linux--面试题、fork、进程相关代码及命令(含解析)
Linux--面试题之fork了几个进程五种情况,代码+解析+结果。包括对缓冲区的理解原创 2022-10-17 19:41:40 · 456 阅读 · 0 评论 -
C++之const
C++关于const:const作用在C中是只读,在C++中是常量1.const可以定义常量 const int a = 10;必须在声明的时候初始化2.const可以定义指针 指针本身 指针所指向的内容3.const可以修改函数形参--提高程序的可读性和健壮性 int strcmp(const char*str1,const char*str2) char *strcpy(char *dest,const char*src)4.const可以修饰成员函数--放在函数参数外面---原创 2022-10-17 18:29:01 · 571 阅读 · 0 评论 -
C++之引用作为形参替代指针
1.使用指针交换两个整型值void my_swap(int* ap, int* bp){ assert(ap != NULL && bp != NULL); int tmp = *ap; *ap = *bp; *bp = tmp;}int main(){ int a = 10, b = 20; cout << "a = " << a << " b = " << b << endl; my_swap(&am原创 2022-05-13 09:31:43 · 307 阅读 · 0 评论 -
C语言--八大排序之希尔排序算法
希尔(shell)排序:分组后(间隔式的分组)利用直接插入排序简单来说就是,插入排序是间隔为一的数字之间进行比较,但希尔排序是间隔为gap的数字为一组,先进行一次插入排序,再不断缩小gap的值,重复以上操作。直到最后一个gap的值为1(分组数不是确定的,但在以后一定是1,才能保证有序)。最好的情况是序列基本有序,且分组数为1,时间复杂度为:O(n)。最坏的情况的时间复杂度:O(n)。(时间复杂度与选定的分组数有关)稳定性:不稳定原创 2022-04-14 20:53:08 · 165 阅读 · 0 评论 -
Linux--写时拷贝、内存管理
写时拷贝是一种可以推迟甚至免除拷贝数据的技术(父子进程。将虚拟内存空间和物理内存空间划分为大小相同的页面(4k、8k、16k等)虚拟内存:在磁盘上划分一块空间原创 2022-10-16 22:32:47 · 324 阅读 · 0 评论 -
Linux进程的基础知识、fork复制进程
Linux进程的基础知识、fork复制进程;fork是把已有的进程复制一份,当然把PCB也复制了一份,然后申请一个PID,子进程的PID(父进程的)+1;子进程的PID=父进程的PID+1;如果父子进程想要做不同的事情,那么我们通过返回值来判断;man fork;原创 2022-10-16 20:32:56 · 251 阅读 · 0 评论 -
Linux--主函数的三个参数(环境变量)、printf隐藏的缓冲区(目的、存在感、强制刷新、退出)
Linux--主函数的三个参数()环境变量、printf隐藏的缓冲区目的、printf隐藏的缓冲区演示区没有存在感、printf隐藏的缓冲区强制刷新原创 2022-10-16 19:43:40 · 362 阅读 · 0 评论 -
Linux--共享文件夹、库文件、库分类(静态库、共享库)
Linux--共享文件夹、库文件、库分类(静态库、共享库)静态库的使用和缺点、静态库和共享库的区别、原创 2022-10-16 19:24:53 · 288 阅读 · 0 评论 -
Linux--makefile 和make
Linux--makefile 和make;Liunx 上的工程管理工具,可以实现自动化编译;提高编译效原创 2022-10-16 11:06:01 · 358 阅读 · 0 评论 -
C++之析构函数
C++之析构函数,定义、示例;为什么有系统有析构函数,程序员还需要自己写?原创 2022-10-13 22:55:22 · 497 阅读 · 0 评论 -
编译原理——编写LEX文件:一个能识别所有运算式中包含的符号
编写LEX文件:一个能识别所有运算式中包含的符号:数字(0-9)+,变量(a-zA-Z)+,运算符:“+,-,*,/,(,)”。如输入(a+10)*b,输出: OPERATER:( WORD:a OPERATER:+ NUMBER:10 OPERATER:) OPERATER:* WORD:b原创 2022-10-13 19:57:46 · 4568 阅读 · 1 评论 -
C语言--swap交换函数
对于Swap交换函数的四种情况的解以及代码+运行结果:原创 2021-11-17 23:29:42 · 20124 阅读 · 3 评论