
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
命名管道和共享内存是两种进程间通信方式。命名管道通过文件系统中的管道文件实现无关进程通信,数据存储在内存缓冲区而非磁盘。共享内存直接在物理内存开辟区域供多进程访问,具有最高通信效率但需自行处理同步问题。文中演示了命令行创建管道、mkfifo函数实现通信,以及共享内存的创建、关联和控制方法,并指出共享内存生命周期随内核持续,需要手动释放。两种方式各有特点:命名管道适合简单通信,共享内存适合高性能场景

摘要 信号保存机制是进程处理异步事件的关键。当信号产生后,操作系统会将其发送给进程,但由于进程可能正在处理其他任务,信号不会立即被处理,从而形成时间窗口。信号处理涉及三个核心概念:递达(实际处理)、未决(信号产生到处理之间的状态)和阻塞(阻止信号递达)。内核通过三张表(block、pending、handler)管理信号状态,其中block表控制信号阻塞,pending表记录未决信号,handle

本文介绍了多线程编程的实现与相关概念。首先展示了一个创建多线程的C++示例代码,演示了线程的创建、运行和等待过程。文章重点讨论了线程的栈结构特性,指出虽然每个线程有自己的栈,但线程间可以互相访问这些栈空间。同时介绍了线程局部存储技术(__thread)来创建线程私有变量。此外,还讲解了线程终止的三种方式:取消线程、自我终止和return返回。最后讨论了线程等待(pthread_join)和线程分离

TCP协议摘要: TCP是传输层协议,通过确认应答(ACK)、超时重传等机制保证可靠性。三次握手建立连接(SYN+ACK),四次挥手断开连接(FIN+ACK)。流量控制通过滑动窗口动态调整发送速率,避免接收缓冲区溢出。协议头包含16位端口号、序号、窗口大小等字段,支持全双工通信。主动关闭方需等待2MSL(TIME_WAIT状态)确保数据消散。服务器通过listen队列管理连接,accept从全连接

本文介绍了URL和HTTP协议的基本概念及格式。URL中的特殊字符会被自动转义,如"+"转为"%2b"。HTTP协议包含请求和响应两种格式,请求由请求行、报头、空行和正文组成,响应格式类似。常用方法为GET和POST,常见状态码包括200、404、403等。文章还提供了模拟HTTP服务器的C++代码实现,包含Socket类和HttpServer类的封装,展示

文章摘要: 本文主要讨论了多线程编程中的死锁问题和线程同步机制。死锁产生的四个必要条件包括互斥、请求保持、不剥夺和循环阻塞,可通过加锁顺序一致、避免锁未释放等方式避免。线程同步通过条件变量实现,pthread_cond_wait()会自动释放锁并等待唤醒。生产者消费者模型通过阻塞队列解耦生产消费过程,使用互斥锁和条件变量保证线程安全。文中给出了阻塞队列的具体实现代码,展示了生产者和消费者线程如何安

本文介绍了Linux信号机制的基本原理和处理方式。信号是进程间通信的一种方式,由操作系统发送给进程,处理方式包括默认、忽略和自定义三种。信号产生来源包括键盘组合键、kill命令、系统调用(如kill、raise、abort)以及硬件异常。进程必须能够识别和处理信号,但处理时机可能延迟。文章通过代码示例展示了如何自定义信号处理函数,并解释了键盘输入、前后台进程、硬件中断等底层机制。同时指出某些信号(

本文介绍了Linux信号机制的基本原理和处理方式。信号是进程间通信的一种方式,由操作系统发送给进程,处理方式包括默认、忽略和自定义三种。信号产生来源包括键盘组合键、kill命令、系统调用(如kill、raise、abort)以及硬件异常。进程必须能够识别和处理信号,但处理时机可能延迟。文章通过代码示例展示了如何自定义信号处理函数,并解释了键盘输入、前后台进程、硬件中断等底层机制。同时指出某些信号(

本文探讨了进程终止与等待的相关机制。首先解释了main函数返回值的作用,0表示成功,非0值表示错误,返回值由父进程接收。介绍了Linux中查看退出码的$?指令,并通过代码示例演示了不同错误情况下的退出码。 详细分析了进程退出的三种场景:正常结束(正确/错误)和异常终止。重点讲解了进程等待的必要性,包括wait和waitpid两种方法:wait会阻塞父进程,waitpid支持非阻塞操作。文章通过代码

环境变量指操作系统用来指定在操作系统运行环境的一些参数比如:我们在编写C/C++代码时,链接时,我们不知道动静态库链接在哪,但是还能够运行,里面就有环境变量帮助编译器查找🚩环境变量具有全局属性(可以被子进程继承)查看环境变量PATH:指令搜素路径🚩为什么我们自己的可执行程序必须要加 ./而有些程序直接输入就行 ls ll 这种因为这些程序已被放入系统搜素路径中,可以直接搜素到,而./翻译过来就







