首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux】进程信号()

1.信号处理相关问题 信号处理,不是可以立即处理的,而是在合适的时候 不懂点击: 信号的产生第三点 ---- 什么时候是合适的时候?...当进程从内核态切换回用户态的时候,进程会在操作系统的指导,进行信号的检测与处理 ---- 内核态与用户态概念的理解 用户态:执行你写的代码的时候,用户所处的状态 内核态:执行操作系统的代码的时候,进程所处的状态...用户无法直接更改 操作系统提供的所有的系统调用,内部在正式执行调用逻辑的时候,会去修改执行级别 信号处理的整体过程 进程返回时,需要进行信号检测 当执行完某种任务时,先找到对应的进程,检测对应的信号...若block为0(阻塞信号不执行),pending为1(收到信号),执行处理方法 若为忽略信号,则将pending由1改为0 ---- 若为自定义捕捉,当系统跳转过去执行的是自己写的方法 实际上自己写的方法是由用户态实现的...虽然说可以使用内核态去执行自己实现的方法,但是不可以这样做,因为有可能方法内部做了一些非法操作 ---- 共分为四步 1.代码执行时,因为系统调用或者时间片到了,切换到内核态 2.返回用户态之前,先做信号检测

13240

Linux异常信号——Signal

近期接触了Linux平台的测试,遇到了软件发生异常,从而接触到了 Linux平台下的Signal——信号,用来通知进程发生了异步事件。...作为测试,免不了需要初步判断一是否是正在的异常,因此学习了一Signal NO 1 信号事件的发生有两个来源: 硬件来源(比如我们按下了键盘或者其它硬件故障); 软件来源,最常用发送信号的系统函数是...(5) 在用户态的进程发出的信号。 如进程调用系统调用kill向其他进程发送信号。 (6) 与终端交互相关的信号。 如用户关闭一个终端,或按break键等情况。...NO 2 Linux支持的信号列表如下(很多信号是与机器的体系结构相关的) 信号值 默认处理动作 发出信号的原因 SIGHUP 1 A 终端挂起或者控制进程终止...,目前位置没有遇到过 以上简单分享了Linux的Signal的含义,以及一些常用的信号值,后续还会继续有分享哟

4.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux之进程信号

3.信号集操作函数 sigset_t类型对于每一种信号用一个bit来表示“有效”或“无效”状态,至于这个类型内部如何存储这些bit则依赖于系统实现,用户(使用者)角度不必关心,用户只能调用一函数来操作...sigprocmask:读取或更改进程的信号屏蔽字(阻塞信号集) 返回值:成功返回0,失败(出错)返回-1。 sigpending:读取当前进程的未决信号集,用set参数传出。...返回值:调用成功返回0,失败(出错)返回-1. 二、信号的捕捉过程 信号产生的时候,进程可能不会立即处理,而是在合适的时间处理。...注意:以core方式退出的是可以被核心转储的,后续可以快速定位问题;以term退出的,一般都是正常情况的终止进程(即,没有异常)。...本文作者目前也是正在学习Linux相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。

17820

Linux的SIGCHLD信号

那么这个实现过程是通过阻塞等待,或者不断的轮询。那么这两个操作对于父进程来说都不是理想的,因此可以通过SIGCHLD信号来实现异步的操作。...那么对于SIGCHLD信号来说,只有在以下三个条件中才会向父进程发送SIGCHLD信号: 1. 子进程终止时 2. 子进程接收到SIGSTOP信号停止时 3....,就可以捕捉到子进程的信号了。...还有需要注意的是因为SIGCHLD不能叠加,所以如果多个子进程结束了也只有一个SIGCHLD,那么对于这种情况我们在捕捉函数中使用循环来处理多个子进程结束的情况,下面就直接看代码吧: #include...,所以可能同时有多个子进程已经结束 所以循环wait */ while((pid = waitpid(0, &status, WNOHANG)) > 0){ if (WIFEXITED(status

4.2K10

Linux c++多线程同步之信号

IPC_CREAT如果信号量不存在,则创建一个信号量,否则获取。 IPC_EXCL只有信号量不存在的时候,新的信号量才建立,否则就产生错误。...返回值:成功返回0,失败返回-1; 参数: _semid : 信号量的标识码。也就是semget()的返回值。 _sops是一个指向结构体数组的指针。...short _semflg; }; sem_num: 操作信号信号集中的编号。第一个信号的编号为0; sem_op : 如果其值为正数,该值会加到现有的信号内含值中。...IPC_UNDO //程序结束时(不论正常或不正常),保证信号值会被重设为semop()调用前的值。这样做的目的在于避免程序在异常情况结束时未将锁定的资源解锁,造成该资源永远锁定。...以上借鉴 信号Linux函数 semget();semctl();semop(); 信号量阻塞案例 void debugPrint(char *objName, char *objAct, char

2.7K10

Linux利用unzip命令如何解压多个文件详解

linux中提示没有unzip命令解决方法 如果你如法使用unzip命令解压.zip文件,可能是你没有安装unzip软件,下面是安装方法 命令: yum list | grep zip/unzip #...获取安装列表 安装命令: yum install zip #提示输入时,请输入y; 安装命令:yum install unzip #提示输入时,请输入y; Linux下直接使用unzip *.zip解压多个文件会报错...解压后不覆盖已经存在的文件,使用-n参数;要以覆盖方式解压,使用-o参数 unzip -n test.zip unzip -n -d /temp test.zip 将压缩文件test.zip在指定目录tmp解压缩...,如果已有相同的文件存在,用-o覆盖原先的文件 unzip -o test.zip -d /tmp/ 只看一zip压缩包中包含哪些子文件但不进行解压,用-l参数 unzip -l test.zip

4.5K20

POSIX AIO -- glibc 版本异步 IO 简介

概述 linux 中最常用的 IO 模型是同步 IO,在这个模型中,请求发出后应用程序会阻塞直到满足条件(阻塞 IO),或在不满足条件的情况立即返回出错(非阻塞 IO),这样做的好处是程序在等待 IO...linux 主要有两套异步 IO,分别是 glibc 实现版本,和 linux 内核实现、libaio 封装的版本。 2....设置了 O_NONBLOCK 标识后,write、read 成为非阻塞 IO,调用后如果资源可用则进行操作,并立即返回,如果资源不可用则直接返回出错,这样的情况,程序通常需要进入忙等待状态,反复调用...返回值如下: aio_error 函数返回值 返回值 意义 EINPROGRESS 请求尚未完成 ECANCELLED 请求已经被用用程序取消 -1 调用出错,出错原因查看 errno 4.3. aio_return...在取消多个请求的情况,如果至少有一个请求没有被取消,则返回 AIO_NOT_CANCELED,如果没有一个请求可以被取消,则返回 AIO_ALLDONE。

75330

Linux线程-互斥与同步

、联系与区别 三、常见锁概念 四、Linux线程同步 1、基本概念 2、条件变量的使用 3、条件变量等待 4、条件变量使用规范 五、POSIX信号量 1、信号量概念及介绍 2、信号量的使用 零、前言.../线程安全 1、基本概念 线程安全: 多个线程并发同一段代码时,不会出现不同的结果,没有数据错乱的情况 常见对全局变量或者静态变量进行操作,并且没有锁保护的情况,会出现该问题 重入:...注意: 信号量本质也是临界资源(被多个执行流申请),要保护临界资源所以信号量的PV操作必须是原子操作 当临界资源申请完时,信号量为0,再申请时线程会在该信号量的等待队列当中进行等待,直到有信号量被释放时再被唤醒...sem_destroy(sem_t *sem); 解释: 参数:sem:需要销毁的信号返回值:销毁信号量成功返回0,失败返回-1 等待信号量函数原型: int sem_wait(sem_t...*sem); //P() 解释: 功能:等待信号量,会将信号量的值减1 参数:sem:需要等待信号返回值等待信号量成功返回0,信号量的值减一;等待信号量失败返回-1,信号量的值保持不变

1.7K20

【操作系统】线程的使用

参考补充: pthread_join(3) — Linux manual page 等待指定线程结束 pthread_join 功能:等待指定线程结束,并获取该线程的返回值。...如果要求多个线程之间的执行顺序满足某个约束,则使用信号量。 信号量 什么是信号量? 此时所指的"信号量"是指用于同一个进程内多个线程之间的信号量。即POSIX信号量,而不是System V信号量。...条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作: 线程因等待"条件变量的条件成立"而被挂起; 线程使"条件成立"(给出条件成立信号)。 条件的检测是在互斥锁的保护进行的。...如果条件为假,一个线程自动阻塞(挂起),并释放等待状态改变的互斥锁。 如果另一个线程改变了条件,它发信号给关联的条件变量,唤醒一个或多个等待它的线程,重新获得互斥锁,重新评价条件。...返回值: 成功:返回0。 失败:返回错误码。 等待条件变量被唤醒 pthread_cond_wait 功能:等待条件变量cond被唤醒(由一个信号或广播)。

40030

Linux操作系统编程》 第十章 线程与线程控制: 线程的创建、终止和取消,detach以及线程属性

、消息队列、信号量、共享内存 10.4 线程的创建与终止 10.4.1 线程的创建 ▪ 在多线程OS环境,应用程序在启动时,通常仅有一个“初始化线程”线程在执行。...▪ 在线程创建函数执行完后,将返回一个线程标识符供以后使用 ▪ Linux下线程创建 - Linux系统的多线程遵循POSIX线程接口,称为pthread。...10.8 Linux的多线程编程 10.8.1 Linux的多线程编程 (1) 多线程编程实例 #include #include void thread...- 第二个参数为一个用户定义的指针,用来存储被等待线程返回值。 - 这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。...- 需要注意的是:一个线程不能被多个线程等待,否则第一个接收到信号的线程成功返回,其余调用pthread_join的线程则返回错误代码ESRCH。

11110
领券