![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux 系统编程
Erupt9001
这个作者很懒,什么都没留下…
展开
-
进程间通信:管道、FIFO、消息队列、共享内存、mmap
进程间通信:管道、FIFO、消息队列、一、进程间通信简介1、IPC 工具分类2、通信工具3、同步工具二、无名管道三、FIFO(命名管道)四、一、进程间通信简介1、IPC 工具分类按照功能将UNIX系统上各种通信和同步工具分为三类:通信:关注进程之间的通信同步:关注进程和线程操作之间的同步信号:信号的主要作用并不在此,但是特定场景下仍然可以作为同步技术甚至通信技术2、通信工具通常情况下,IPC是为进程间的通信准备的,但某些工具确实可以实现同一进程的线程间的数据交换,但很少需要这样做,因为线程原创 2020-08-07 11:48:12 · 1557 阅读 · 0 评论 -
进程特例:僵尸进程、孤儿进程、守护进程
进程特例:僵尸进程、孤儿进程、守护进程一、僵尸进程和孤儿进程二、守护进程一、僵尸进程和孤儿进程僵尸进程: 子进程结束,父进程尚未调用wait()回收子进程资源,子进程的PCB还残留在内核,造成资源的浪费孤儿进程:父进程先于子进程结束,子进程成为孤儿进程,子进程修改PCB使其父进程为init进程,孤儿进程结束后,由init进程负责回收其PCB资源二、守护进程守护进程(daemon process),是Linux中的后台进程。守护进程具有以下特征:具有较长的生命周期,一般系统启动时就启动并一直运行原创 2020-08-05 19:51:06 · 199 阅读 · 0 评论 -
Linux终端、进程组、会话
Linux终端、进程组、会话一、进程组1. 进程组概述2. 进程组API二、会话1.会话概述2.会话API一、进程组1. 进程组概述进程组是一个或多个进程的集合。进程组随进程组首进程创建,进程组的PGID为首进程ID。进程组的生命周期从首进程的创建开始,到进程组内的最后一个进程结束或离开而结束。2. 进程组API(1)获取本进程进程组ID,该函数一定能够成功返回。#include <unistd.h>pid_t getpgrp(void);功能:获取本进程进程组ID参数:voi原创 2020-08-05 19:11:00 · 564 阅读 · 0 评论 -
解决在Vim中鼠标右键不能粘贴问题
原文链接:https://www.cnblogs.com/csnd/p/11406901.html最近维护一台服务器,使用putty登录后,用vim时,鼠标右键不能 粘贴而是进入了visual模式。网上查找一番找到了解决方法:方 法一:在普通模式下键入“ :set mouse-=a”(不包括引号)方 法二:编辑 ~/.vimrc 文件,加入如下代码: if has(‘mouse’) set mouse-=a endif方法一每次打开vim时都需要设置一次。方法二改了配置文件后,问题就解决了。.原创 2020-08-05 11:34:41 · 775 阅读 · 0 评论 -
fork()创建多个子进程Demo
#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <sys/wait.h>/* 创建指定数量的子进程 */int main(int argc, char *argv[]){ int i = 0; pid_t pid; //父进程创建3个子进程 for(i = 0;i < 3 ; ++i) { pid = fork(); if(pid ==原创 2020-08-05 11:32:32 · 340 阅读 · 0 评论 -
进程的终止
进程的终止一、进程的终止方式二、进程终止的细节三、退出处理程序四、fork()、 stdio 缓冲区以及_exit()之间的交互一、进程的终止方式进程通过接受信号异常退出通过调用_exit(status)正常退出,其中status保存进程退出的状态,0为正常退出,非0为异常退出,但这并不是明文规定的标准,SUSv3 规定有两个常量: EXIT_SUCCESS(0)和 EXIT_FAILURE(1)通过执行exit(status)正常退出exit()会执行的动作如下:1、调用退出处理函数(通过原创 2020-08-04 15:49:14 · 2690 阅读 · 0 评论 -
进程的创建(fork、vfork)
进程的创建:fork、vfork一、fork()1.fork()的概述2.父子进程之间的文件共享3.fork()的内存语义3.fork()的使用场景二、vfork()1.vfork()的概述三、fork之后的竞争条件一、fork()1.fork()的概述fork()允许父进程创建一个子进程,为子进程申请一块独立的内存空间,拷贝父进程的执行代码段、数据段、堆栈内容,之后父进程和子进程各自拥有独立的内存空间,执行各自的程序代码。简单说,子进程拷贝父进程的资源后,拥有自己的进程号和计时器,开始执行自己的程序原创 2020-08-04 14:17:01 · 527 阅读 · 0 评论