LINUX异步信号集合示例代码

主要以sigemptyset(),sigaddset()函数为基础查看信号集的存储结构。

用于进程间的异步通信。

 1 #include <signal.h>
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4
 5 int output(sigset_t set);
 6
 7 int main()
 8 {
 9     sigset_t set;
10     printf("after empty the set:\n");
11     sigemptyset(&set);
12     output(set);
13     printf("after add signo = 2:\n");
14     sigaddset(&set, 2);
15     output(set);
16     printf("after add signo = 10:\n");
17     sigaddset(&set, 10);
18     output(set);
19
20     sigfillset(&set);
21     printf("after fill all:\n");
22     output(set);
23     return 0;
24 }
25
26 int output(sigset_t set)
27 {
28     int i =0;
29     for(i = 0; i < 1; i++)
30     {
31         printf("0x%8x\n", set.__val[i]);
32         if((i + 1) % 8 == 0)
33             printf("\n");
34     }
35 }

输出:

[root@localhost ~]# ./sig_set_member
after empty the set:
0x       0
after add signo = 2:
0x       2
after add signo = 10:
0x     202
after fill all:
0x7fffffff

时间: 2024-08-04 05:03:13

LINUX异步信号集合示例代码的相关文章

linux异步信号handle浅析

在初学linux编程的时候,一直觉得异步信号handle是个很神奇的东西,用户程序可以使用singal之类的系统调用为某某信号注册一个信号处理函数(handle函数). 程序的二进制代码在内存中都有着确定的执行流程,为什么收到异步信号以后,程序会被"中断",然后跳转到这个handle函数里面去运行呢?内核怎么有能力让程序做这样的跳转呢,总不可能临时修改程序的可执行代码吧? 后来学习了一些内核知识,才知道原来进程收到信号以后,并不是立即就被"中断"的,而是先在进程的控

Linux下定时器的示例代码

Linux下定时器的问题 示例代码: #include <iostream> using namespace std; #include <pthread.h> #include <unistd.h> #include <stdlib.h> #include <signal.h> #include <pthread.h> #include <unistd.h> #include <sys/stat.h> #in

使用jquery.upload.js实现异步上传示例代码_jquery

相关资源下载:upload 1:jsp代码: 导入jquery.upload.js和jquery-1.7.2.js 添加调用js的代码:<a href="javascript:void(0)" rel="external nofollow" onclick="doUpload()">上传</a> 在底部写: <iframe style="position:absolute;top:-9999px"

linux可重入、异步信号安全和线程安全

一 可重入函数 当一个被捕获的信号被一个进程处理时,进程执行的普通的指令序列会被一个信号处理器暂时地中断.它首先执行该信号处理程序中的指令.如果从信号处理程序返回(例如没有调用exit或longjmp),则继续执行在捕获到信号时进程正在执行的正常指令序列(这和当一个硬件中断发生是所发生的事情相似.)但是在信号处理器里,我们并不知道当信号被捕获时进程正在执行哪里的代码. 如果进程正使用malloc在它的堆上分配额外的内存,而此时由于捕捉到信号而插入执行该信号处理程序,其中又调用了malloc,这会

ext 同步和异步示例代码_extjs

同步调用的相关文档就少一些.一下是同步示例,即页面在加载时,或者这个js被调用到时,程序会一行一行的往下走,这在获取页面初始化需要数据或者样式等一些功能会用到. 示例代码: 复制代码 代码如下: //判断按钮权限的方法.true为无权限,false为有权限可以显示     function checkButton(buttonId){         //按钮的状态,ext对类型要求比较高,这里注意类型.变量的转换问题.         var state = new Boolean(true)

《unix设备驱动》块设备驱动程序(加示例代码)

块设备驱动程序 一个块设备驱动程序主要通过传输固定大小的随机数据来访问设备. 块驱动程序是在核心内存和其他存储介质之间的管道,因此他们可以认为是虚拟内存子系统的组成部分.   一些概念 一个数据块指的是固定大小的数据,而大小的值有内核决定  与数据块对应的是扇区,它是由底层硬件决定大小的一个块.  无论何时内核向用户提供一个扇区编号,该扇区的大小就是512字节. 注册 注册的目的:使内核知道设备的存在 注册块设备驱动程序 注册到内核 int register_blkdev(unsigned in

ASP.NET JSON字符串与实体类的互转换的示例代码

 本篇文章主要是对ASP.NET JSON字符串与实体类的互转换的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 还是先封装一个类吧! 这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈. 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using Sys

android电话窃听器(示例代码)_Android

在我上篇文章android短信监听工具(示例代码),开发了一个"短信监听工具",是基于广播接收者实现的,有一些缺陷(例如:不能隐藏的很深,不能开机自动运行...) 在本实例中,将使用新的技术"服务"来解决这些缺陷. 复制代码 代码如下: package cn.itcast.phone; import java.io.File;import java.io.OutputStream;import java.io.PushbackInputStream;import j

jQuery同步提交示例代码_jquery

本文实例讲述了jQuery同步提交的方法.分享给大家供大家参考,具体如下: 使用jQuery 框架,同步提交演示 在一些严格检测或者递归.循环调用的情况下,如果不能同步返回数据则可能会出现错误结果,所以需要使用同步提交技术,jQuery默认是异步操作,需要显式设置异步属性async为false,便可以实现同步. 自定 data 提交 function GroupCheck(url, operate, check, group, joker) { var result = -1; $.ajax(