自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代威涛的主页

Linux C/C++ JAVA

  • 博客(16)
  • 收藏
  • 关注

原创 Linux Signal (8): sigsetjmp和siglongjmp

进程部分介绍过了setjmp和longjmp函数, 这两个函数在跳转时会带信号屏蔽字跳转, 在信号处理程序(hanlder)中使用longjmp会导致后来产生的这种信号被屏蔽.POSIX.1 也没有具体说明setjmp和longjmp对信号屏蔽字的作用, 而是定义了两个新函数: sigsetjmp和siglongjmp.1. 原型:#include setjmp.h>int sig

2007-09-28 11:12:00 13672 4

原创 Linux Signal (7): sigaction

sigaction函数是用作检查/修改与指定信号相关联的处理动作. 在UNIX早期版本中使用signal, 后来改用了sigaction, 可见它的功能比signal要强大. 另外, signal函数也是可以用sigaction实现的.1. sigaction原型:#include signal.h>int sigaction(int signo, const struct sigac

2007-09-27 17:02:00 6976 4

原创 Linux Signal (6): 信号屏蔽字

1. 概念:信号屏蔽字就是进程中被阻塞的信号集, 这些信号不能发送给该进程, 它们在该进程中被"屏蔽"了. 后面我们会提到, 实际上它们是被阻塞了.2. 信号屏蔽函数:#include signal.h>int sigprocmask(int how, const sigset_t *restrict set, sigset_t *restrict oset);成功则返回0, 

2007-09-25 15:46:00 13355 2

原创 Linux Signal (5): 信号集

信号集给我们提供了一个能表示多个信号的是数据类型(sigset_t), 它将在sigprocmask, sigpending, sigsuspend之类的函数中用到, 这些函数我会在以后的文章中介绍.1. 信号集相关函数:#include signal.h>int sigemptyset(sigset_t *set);成功则返回0, 出错则返回-1. 这个函数用作初始化set指

2007-09-25 13:05:00 14994

原创 Linux Signal (4): alarm和pause

1. alarm函数:alarm函数是设置一个计时器, 在计时器超时的时候, 产生SIGALRM信号. 如果不忽略或捕捉此信号, 它的默认操作是终止调用该alarm函数的进程.原型如下:#include unistd.h>unsigned int alarm(unsigned int seconds);返回0或余留秒数说一下alarm的返回值问题, 每个进程只能有一个ala

2007-09-25 11:21:00 10876

原创 Linux Signal (3): kill和raise

1. 函数说明:kill和raise是用来发送信号的:kill把信号发送给进程或进程组;raise把信号发送给(进程)自身.他们的原型如下:#include signal.h>int kill(pid_t pid, int signo);int raise(int signo);成功则返回0, 出错则返回-1 从原型上可以看出, raise函数是可以通过kill实现

2007-09-24 16:23:00 9476

原创 makefile的写法

makefile是一种描述依赖关系的文件, 它主要描述的是整个工程编译规则, 同时也给工程的维护提供很大的方便. 这在大型工程中非常实用. 在写好makefile之后, 只需要在命令行输入make命令, 工程就按照既定的makefile规则进行"自动化编译".1. 编译(compile)和链接(link):我们通常所说的编译一般来说指的是编译和链接这两个过程的总称. 不管是什么类型的源

2007-09-17 17:09:00 1829

转载 Linux的历史

简单说,linux就是跟windows一样,是一种电脑操作系统.可以在包括个人电脑在内的各种计算机上使用。它使用的版权许可证是支持软件的自由免费、开放源代码的GNU通用公共许可证GPL。多年来,Linux获得了广大黑客、计算机爱好者、科研人员以及普通用户的喜爱,目前已经广泛用于计算机行业的各领域,包括了个人电脑、服务器、工作站以及各类智能嵌入式系统等等.linux的历史可以上溯到60年代末,美国贝

2007-09-14 15:33:00 1166

转载 Linux的主要发行版

Linux 发行版众多,可以用多如牛毛来形容。曾经见到有人收集到了 300 多个 Linux 发行版。实际上,流传于世的 Linux发行版数目可能还远不止于此。这么多的 Linux 发行版,对打算从其他系统转换过来的用户来说可能会感到困惑;而即便是忠实的 Linux用户也没有时间和精力去挨个尝试。对此,DistroWatch 从众多 Linux 发行版中遴选出 10 个,无疑是一种很好的参考。sc

2007-09-14 15:31:00 1166

原创 Linux Signal (2): signal函数

1. 原型:#include signal.h>void (*signal(int signo, void (*func)(int))(int);成功则返回该信号以前的处理配置, 出错则返回SIG_ERR.参数说明: signo: 信号名, 如SIGINT. func: 对应signo的信号处理函数的函数名, 这个函数没有返回值, 有一个整型参数, 这是捕捉

2007-09-14 14:43:00 6009

原创 Linux Signal (1): 基本概念

1. 信号是软件中断:信号提供了一种处理异步事件的方法. 每个信号都有一个名字, 他们以SIG开头, 如SIGALRM是闹钟信号, 当由alarm函数设置的计时器超时后产生此信号, 然后由SIGALRM的信号处理函数接管处理, 处理之后返回调用alarm函数的应用程序中.2. 信号编号:在头文件中, 信号都用宏定义为正整数的信号编号, 不存在编号为0的信号, kill函数对编号为0

2007-09-14 10:51:00 6345 1

原创 一个无知人对Linux的挑衅

就在刚才, 准备下班的时候, 在CSDN看到一个帖子:==============================================================Linus Torvalds的成功是政治因素而不是技术因素的结果。 换句话,Torvalds是领袖,而非大师。 L粉们都是追星族。 Linus Torvalds以为他自己如何如何了? 飘飘然了? 一个好一点儿的计算

2007-09-12 19:19:00 1458 4

原创 中断和异常

    处理器的速度和外围硬件设备的速度往往不在一个数量级上, 因此, 如果Linux内核采取让处理器向硬件发出一个请求, 然后专门等待回应, 这种办法显然不好.    硬件响应慢, 因此内核需要在这段时间内处理其他事务, 等到硬件真正完成了请求的操作之后, 内核再回来对它进行处理. 要实现这种功能, 有两种方法: 轮询和中断.     轮询(polling)可以让内核定期对设备的状态进行

2007-09-11 14:08:00 2516 8

转载 系统调用

1什么是系统调用         系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。 从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传

2007-09-04 10:05:00 1521

转载 AT&T汇编语言与GCC内嵌汇编简介

AT&T汇编语言与GCC内嵌汇编简介1 AT&T 与INTEL的汇编语言语法的区别1.1大小写1.2操作数赋值方向1.3前缀1.4间接寻址语法1.5后缀1.6指令2 GCC内嵌汇编2.1简介2.2内嵌汇编举例2.3语法2.3.1汇编语句模板2.3.2输出部分2.3.3输入部分2.3.4限制字符2.3.5破坏描述部分2.4GCC如何编译内嵌汇编代码3后记本节先介绍AT&T汇编语言语法与INTEL汇编

2007-09-03 21:30:00 1152 2

原创 AT&T asm

一、AT&T 格式Linux 汇编语法格式 在 AT&T 汇编格式中,寄存器名要加上 % 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。在 AT&T 汇编格式中,用 $ 前缀表示一个立即操作数;而在 Intel 汇编格式中,立即数的表示不用带任何前缀。例如: 寄存器和立即数  

2007-09-03 18:30:00 3343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除