linux 信号处理 的学习
linux系统中对信号的处理主要是signal 和sigaction函数来完成,pause用来响应任何信号,但不做任何处理。
1。signal函数
该函数用来设置进程在接到信号的动作。可以 man signal查看具体用法,现在对其用法演示,
SIGKILL SIGSTOP是不能被捕捉和忽略的信号。
#include <stdio.h>
#include <signal.h>
void handler_sigint (int signo)
{
printf("recv SIGINT\N");
}
int main()
{
signal(SIGINT,handler_sigint);
while(1)
;
return 0;
}
解释:while为死循环,ctrl+c产生SIGINT信号,而ctrl+\将向进程SIGQUIT 信号,但程序本身没有处理该信号,则使用默认处理方式,退出程序。也可以kill;
相关文档:
linux启动流程:
系统预处理程序->GRUB (此阶段可以理解为bootloader阶段)
->kernel (此阶段为kernel)
->initrd->init启动->inittab->rc.sysinit->functions(PATH)->modules->rcX.d(读配置文件)
1.->字符模式->tty->bash
2.->图形模式->进入X Window-> ......
errno变量(需include errno.h)会被赋一个整数值,不同的值表示不同的含义,
可以通过查看该值推测出错的原因。但是errno是一个数字,代表的具体含义
还要到errno.h中去阅读宏定义。有下面几种方法可以方便的得到错误信息
(一)
#include <stdio.h>
void perror(const char *s)
perror()用来将上一个函数发生错误的 ......
几个简单的应用。
1、批量图像格式转换
如果想将某目录下的所有jpg文件转换为png文件,只要在命令行模式下输入:
for %f in (*.jpg) do convert “%f” “%~nf.png”
2、对所有图像进行同一操作
譬如,批量生成某目录下所有PNG图像文件的缩略图(大小为80×40):
fo ......
第一步,我们在Linux系统下,修改/etc/X11/xdm/Xaccess文件,找到下面的语句:
# * #any host can get a login window
去掉最前面的#号,成为
* #any host can get a login window
第二步,我们修改/etc/X11/gdm/gdm.conf文件,找到下面的语句:
[xdmcp]
Enable=false
将其中的En ......
7.5. Tasklets 机制
上一页
第 7 章 时间, 延时, 和延后工作
下一页
http://lsec.cc.ac.cn/~tengfei/doc/ldd3/index.html
Linux 设备驱动 Edition 3
7.5. Tasklets 机制
另一个有关于定时问题的内核设施是 tasklet 机制. 它大部分用在中断管理(我们将在第 10 章再次见到). ......