APUE学习之------------信号】的更多相关文章

在学习一个东西的时候我总是喜欢去问这样做的理由是什么?也喜欢去究竟他的历史.从中你可以发现所有的设计都在不断改进出来的,从来就没有一个设计是一开始就是完美的.好比是人,之初,性也许是善的,如果我们不通过后天的学习去让自己的心灵完美的话,他就只停留在了人的初级阶段了. 对于信号(signal)也是如此,硬件的中断中得出他的模型,然后不断的的去完善它.当一个事件发生时内核就会对该进程发送相应的信号,比如,内存错误了就是发送SIGSEGV,这个也就是我们常看到的段错误.再比如当我们做除零操作是就会发送…
转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int kill(pid_t pid,int signo); int raise(int signo); Both return: 0 if OK,−1 on error kill向进程号为pid的进程发送signo信号 可以看出 下面两行代码是等价的: kill(getpid(), signo); raise(sig…
APUE学习心得 Chapter 3 IO 3.2 文件描述符 文件描述符是一个非负整数.当打开 一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符.0 标准输入,1 标准输出, 2 标准错误 3.3 open函数 1.调用 o p e n函 数 可 以 打 开 或 创 建 一 个 文 件 . #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char*…
Qt学习之信号与槽(一) 目录 QT的信号与槽机制 在窗口的UI设计中操作添加信号和槽     QT的信号与槽机制   QT的两种机制 在Qt和PyQt中有两种通信机制: 低级事件处理机制(low-level event-handling mechanism) 高级机制(high-level mechanism) 前者是大部分GUI通用的机制,后者是Qt独有机制,也就是信号和槽. 信号与槽会屏蔽底层细节. 什么是底层细节:比如是不需要知道是鼠标点击了按钮还是键盘操作了按钮,最后的结果都是按钮被点…
APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open().read().write().lseek().close()等.这类I/O函数也被称为不带缓冲的I/O,标准I/O是带缓冲的I/O(当然,标准I/O也可以设置为不带缓冲). 文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用,比如read.write等操作都是通过文件描述符来实现的.文件描述符其实就是一个非负整数.当打开或者创建一个文件时,内核会向进程传递一个非负整数作为文件描述符,该文件描述符就可以…
如有转载,请注明出处:Windeal专栏 首先简述下几个概念的关系: 我们通过信号集建立信号屏蔽字,使得信号发生阻塞,被阻塞的信号即未决信号. 信号集: 信号集:其实就是一系列的信号.用sigset_t set表示. 数据类型:sigset_t 类似于整型(位数可能超过整型,因而不能用整型表示). 我们一般在sigprocmask()等函数中使用信号集,用于创建一系列进程要阻塞的信号,告诉内核不允许这些信号发生. 几个关于信号集的函数: #include <signal.h> int sige…
signal函数     signal函数是早起Unix系统的信号接口,早期系统中提供不可靠的信号机制.在后来的分支中,部分系统使用原来的不可靠机制定义signal函数,如 Solaris 10 .而更多的系统采用新语义 可靠信号机制,如4.4BSD.     出于signal函数不同系统的不统一性,我们一般使用sigaction函数取代它.关于sigaction函数,我们在本文后面做详细介绍. 函数原型: #include <signal.h> void (*signal(int signo…
信号的基本概念     信号是软件中断,信号提供了解决异步时间的方法.     每一中信号都有一个名字,信号名以SIG开头. 产生信号的几种方式     很多条件可以产生信号:     终端交互:用户按下某一些按键,如ctl+c,会产生信号.     硬件异常:如除数为0,内存引用错误.     kill(2)函数:将信号发送到一个进程或者进程组     kill(1)命令:该命令为kill(2)函数的接口.用于终止失控的后台in成.     检测到某软件条件发生:如网络连接上传来外数据(产生S…
本章先对信号机制进行综述,并说明每种信号的一般用法. 信号概念 每个信号都有一个名字,这些名字都以3个字符SIG开头.在头文件<signal.h>中,信号名都被定义为正整形常量. 在某个信号出现时,可以按下列3种方式之一进行处理: 1 忽略该信号.大多数信号都可以使用这种方式进行处理,但有两种信号却决不能被忽略:SIGKILL和SIGSTOP(只能执行系统默认动作). 2 捕获信号.通知内核在某信号发生时,调用一个用户函数对这种时间进行处理. 3 执行系统默认动作.对于大多数信号的系统默认动作…
首先说明:现在大部分Unix系系统如Linux都已经实现可靠信号. 1~31信号与SIGRTMIN-SIGRTMAX之间并不是可靠信号与不可靠信号的区别,在大多数系统下他们都是可靠信号. 只不过: 1~31信号                              --不支持排队,为普通信号.(不能用于统计信号发生次数的情景.) SIGRTMIN-SIGRTMAX信号 --支持排队,实时信号 不可靠信号 什么是不可靠信号: 不可靠的意思是信号可能丢失或者被错误处理. 在早起系统中,信号存在两…