- 博客(17)
- 收藏
- 关注
原创 进程间通信
匿名管道就是让父子进程打开同一个文件资源,父子进程通过读写这个文件进行通信(这个文件是操作系统进行管理的为了保证通信的正常,子进程不会写时拷贝的)文件映射:将磁盘中的文件映射到映射到进程的虚拟内存中可以通过进程对文件进行高效的读写操作、将同一个文件映射到不同的进程中可以实现进程间的通信(有无血缘关系都行)命名管道与匿名管道一样,都是内存文件只不过命名管道在磁盘中有一个简单的映射,但是这个映射文件永远为0,因为不管是匿名还是命名管道都不会把数据刷新到磁盘中。匿名映射:不关联任何文件,映射的是"空"内存区域。
2025-10-10 19:43:45
706
原创 你也想了解”进程“吗
exec函数族一般用于替换当前进程的映像、常常和fork联用,通过父子进程执行不同的分支,使用exec函数族将子进程替换去执行不同的代码、新的进程的代码段和数据段会将老进程的进程段和数据段全部覆盖并且从新的代码的第一条指令开始执行,但进程的id不变(若exec成功执行则无返回值,失败时返回-1)孤儿进程:当父进程先于子进程结束时,子进程被称为孤儿进程,变成孤儿进程后会有一个专门的进程init,称init叫孤儿回收进程(init的进程号为1)。获取上一个运行的进程的pid每次运行进程时$!
2025-06-30 21:13:52
873
原创 指针和引用
指针:指针是存储地址的一个变量他指向存储的那块地址、使用地址存储的内容时可以通过*来使用。因为指针不必须初始化、所以指针存在空指针、野指针的隐患、所以引用比指针更安全。右值引用:用于匿名对象(如:函数返回值)对象(右值引用是实现移动语义。存储方面引用是起别名不占用额外空间、指针占用独立空间用来存储地址。引用的底层是指针常量(指向的位置不能发生改变)、指针不是。左值引用:用于有名字能取地址的对象。引用必须初始化且不能为空、指针不是。可能存在的问题:野指针和悬挂指针。引用没有多级、指针有。
2025-04-20 18:45:42
140
原创 封装、继承、多态(更新ing)
封装是面向对象编程的三大特性之一、是将事务的属性和行为封装在一起形成一个类、对于封装的属性与行为有三种访问权限(私有的provide、受保护的protect、公共的public)函数隐藏:当派生类中创建了与基类中函数名相同的函数时基类中的函数会被隐藏:当用子类对象调用的时候只会调用派生类中的函数,如果想调用基类中的函数我们可以使用显示调用。在类概念的基础上、我们有了继承的概念、继承就是利用已经创建的类来构建新的类、提高了代码的复用性、减少冗余代码、实现了层次化设计。受保护的:只能在类内或者派生类中访问。
2025-04-18 21:05:37
239
原创 计算机网络第三层--网络层
每个网络的拓扑结构不同、物理层&链路层的实现不同、主机类型也各不相同在TCP/IP文献中,路由器也称为网关(Gateway)
2025-01-18 22:05:01
808
原创 数据链路层②
N * 数据帧的发送时延 / 数据帧的发送时延 + RTT(往返时延) + 确认帧的发送时延(太小时可以忽略)若C从链路上收到的序列是(2,0,2,0),(0,-2,0,-2),(0,2,0,2),则C收到A发送的数据是()一般的电话、手机也是全双工的系统,因为在讲话时可以听到对方的声音。=数据帧的发送时延 / 数据帧的发送时延 + 2 * 传播时延 + 确认帧的发送时延。延迟)进行确认,若甲、乙之间的单向传播延迟是50ms,则甲可以达到的最大平均数据传输。因为接收信号的强度往往远小于发送信号的强。
2025-01-16 23:08:53
1141
原创 封装与继承
封装时面向对象的三大特性之一封装的意义一:创建类时、可以将一个事物的方法和属性放在一个类中进行封装、用来表示这个事物封装的意义二:在类中可以对属性与方法加以权限控制、进行管理(private、protected、public)
2025-01-12 10:17:59
411
原创 这竟然就是数据链路层①
在数据帧的首部填一个校验位使得数据中1的个数保持奇数(奇校验)或者偶数(偶校验)在首尾加入一串01111110字符标记帧的界限、若数据中有连续的5个1则在其末尾补一个0。例题:设生成多项式为式G(x)=x3+x2+1,信息码为101001,求对应的CRC码。生成多项式G(x)=1*x3+1*x2+0*x1+1*x°,对应二进制码1101。K=信息码的长度=6,R=生成多项式最高次幂=3→校验码位数N=K+R=9。在帧的头部加入一个计数字段表示帧的长度(帧长=计数字段+数据字段)1.帧定界:确定帧的界限。
2025-01-11 22:36:24
636
原创 OSI七层模型、TCP/IP四层模型
3、网络层(分组):把分组从源地址转发到目的地址(有路由选择、分组转发、拥塞控制、网际互连、差错控制等)4、传输层(报文段):实现端到端的通信即进程到进程间的通信、端指端口。2、数据链路层(帧):确保邻节点之间的链路逻辑上无差错(有差错控制、流量控制的功能)6、表示层:解决不同主机信息表示不一致的问题(编码转换、压缩/解压缩、加密/解密)资源子网(下三层):主要功能处理传输来的数据(物理层、数据链路层、网络层)通信子网(上三层):主要功能数据通信(会话层、表示层、应用层)UDP:无连接、不可靠的传输协议。
2025-01-10 09:40:29
335
原创 初识Linux
Linux的历史可以追溯到1991年,当时,芬兰赫尔辛基大学的学生Linus Torvalds开始开发一个新的操作系统内核,他将之命名为Linux。最初,Linus Torvalds开发Linux是为了用于个人电脑。他希望能够创建一个开放的、免费的操作系统,使用户能够自由地修改和分享代码。他发布了第一个Linux内核的版本,并通过互联网向其他开发者寻求帮助。在接下来的几年里,Linux得到了越来越多的开发者和用户的支持。1993年,第一个完整的Linux发行版——Slackware发布。
2024-11-15 16:49:16
341
原创 Qt中的事件(Qt中一些主要类的父子关系)
(代码如下)为了弄清双击事件的执行顺序,又重写了QMainwindow中的event函数,发现双击时不输出坐标,而是输出”拦截“的提示(下面说一下事件的执行顺序)“今天在学习Qt中事件的时候,想重写一些父类的虚函数,弄不清这些类的父子关系,在解决这个问题的时候查找到了这个图片还是挺清晰的”在Qt中,鼠标双击事件的执行过程通常是通过继承QMouseEvent类中的双击事件函数来实现的。总之,在Qt中处理鼠标双击事件的执行过程是通过继承相应的鼠标事件函数,然后在函数中编写具体的响应逻辑。
2024-11-09 19:45:54
603
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅