当前位置: 首页 > news >正文

网站建设目标规划三只松鼠的软文范例

网站建设目标规划,三只松鼠的软文范例,宁波网站建设 熊掌号,网站里的注册怎么做信号集操作函数 内核通过读取未决信号集来判断信号是否应被处理。信号屏蔽字 mask 可以影响未决信号集。而我们可以在应 用程序中自定义 set 来改变 mask。已达到屏蔽指定信号的目的。 信号集设定 sigset_t set; //typedef unsigned long sigset_t;int sigemptyset(sigset_t…信号集操作函数 内核通过读取未决信号集来判断信号是否应被处理。信号屏蔽字 mask 可以影响未决信号集。而我们可以在应 用程序中自定义 set 来改变 mask。已达到屏蔽指定信号的目的。 信号集设定 sigset_t set; //typedef unsigned long sigset_t;int sigemptyset(sigset_t* set); 将某个信号集清 0 成功0失败-1int sigfillset(sigset_t* set); 将某个信号集置 1 成功0失败-1int sigaddset(sigset_t* set,int signum); 将某个信号加入信号集 成功0失败-1int sigdelset(sigset_t* set,int signum); 将某个信号清出信号集 成功0失败-1int sigismember(const sigset_t* set,int signum);判断某个信号是否在信号集中 返回值在集合1不在0 出错-1 sigset_t 类型的本质是位图。但不应该直接使用位操作而应该使用上述函数保证跨系统操作有效。 sigprocmask 函数 用来屏蔽信号、解除屏蔽也使用该函数。其本质读取或修改进程的信号屏蔽字(PCB 中) 严格注意 屏蔽信号只是将信号处理延后执行(延至解除屏蔽)而忽略表示将信号丢处理。 函数格式 int sigprocmask(int how,const sigset_t* set,sigset_t* oldset); 成功0失败-1设置 errno 参数 set传入参数是一个位图set 中哪位置 1就表示当前进程屏蔽哪个信号。 oldset传出参数保存旧的信号屏蔽集。 how 参数取值 假设当前的信号屏蔽字为 mask SIG_BLOCK: 当 how 设置为此值set 表示需要屏蔽的信号。相当于 maskmask|setSIG_UNBLOCK: 当 how 设置为此set 表示需要解除屏蔽的信号。相当于 maskmask~setSIG_SETMASK: 当 how 设置为此set 表示用于替代原始屏蔽及的新屏蔽集。相当于 maskset 若调用 sigprocmask 解除了对当前若干个信号的阻塞则在 sigprocmask 返回前至少将其中一 个信号递达。 sigpending 函数 读取当前进程的未决信号集 int sigpending(sigset_t* set); set 传出参数。 返回值成功0失败-1设置 errno 编写程序。把所有常规信号的未决状态打印至屏幕。 /** 打印未决信号集*/#includestdio.h #includesignal.h #includeunistd.hvoid printped(sigset_t * ped) {int i;//常用的是前32个信号for(i 1; i 32; i ){if(sigismember(ped,i) 1){ //在集合中putchar(1);}else{putchar(0);} } printf(\n); }int main(void ){sigset_t myset, oldset ,ped;sigemptyset(myset);sigaddset(myset,SIGQUIT);//屏蔽系统本身3号信号sigaddset(myset,SIGINT);//屏蔽系统本身的2号信号sigaddset(myset,SIGTSTP);sigaddset(myset,SIGSEGV);sigaddset(myset,SIGKILL); sigprocmask(SIG_BLOCK,myset,oldset);while(1){sigpending(ped);//判断集合中每个信号的对应位是0还是1printped(ped);sleep(1);}return 0; }9号信号和19号信号不允许设置屏蔽 信号捕捉 signal 函数 注册一个信号捕捉函数 typedef void(*sighandler_t)(int); sighandler_t signal(int signum,sighandler_t handler);该函数由 ANSI 定义由于历史原因在不同版本的 Unix 和不同版本的 Linux 中可能有不同的行为。因此应该尽 量避免使用它取而代之使用 sigaction 函数。 void (*signal (int signum,void ( *sighandler_t)(int)))(int); #includestdio.h #includesys/time.h #includesignal.hvoid myfunc(int signo) {printf(hello world\n); }int main(void) {struct itimerval it,oldit;signal(SIGALRM,myfunc); //注册SIGALRM信号的捕捉处理函数//sighandler_t tmlsignal(SIGALRM,myfunc);it.it_value.tv_sec5;//定时5秒中it.it_value.tv_usec0;//0微秒it.it_interval.tv_sec3;//第一个和第二个之间间隔时间3秒it.it_interval.tv_usec0;if(setitimer(ITIMER_REAL,it,oldit) -1){perror(setitimer error);return -1; } while(1);return 0; }第一个出来是5秒随后都是3秒出来一个 #includestdio.h #includesignal.h #includeerrno.h #includestdlib.h #includeunistd.h typedef void(*sighandler_t)(int);void catchsigint(int singo) {printf(-----catch\n); }int main(void) {sighandler_t handler;handlersignal(SIGINT,catchsigint);//捕捉if(handler SIG_ERR){perror(signal error);exit(1);} while(1);return 0; }sigaction 函数 修改信号处理动作通常在 Linux 用其来注册一个信号的捕捉函数 int sigaction (int signum,const struct sigaction*act,struct sigaction*oldact) 成功0失败-1设置 errno参数 act传入参数新的处理方式。oldact传出参数旧的处理方式。 struct sigaction 结构体 struct sigaction {void (*sa_handler)(int); //函数名void (sa_sigaction)(int,siginfo_t,void*);sigset_t sa_mask; //用于指定在信号捕捉期间屏蔽的信号int sa_flags; //标志位void (*sa_restorer)(void); }; sa_restorer该元素是过时的不应该使用POSIX.1 标准将不指定该元素。(弃用) sa_sigaction当 sa_flags 被指定为 SA_SIGINFO 标志时使用该信号处理程序。(很少使用) 重点掌握 sa_handler指定信号捕捉后的处理函数名(即注册函数)。也可赋值为 SIG_IGN 表忽略 或 SIG_DFL 表执行默 认动作 sa_mask: 调用信号处理函数时所要屏蔽的信号集合(信号屏蔽字)。注意仅在处理函数被调用期间屏蔽 生效是临时性设置。 sa_flags通常设置为 0表使用默认属性。 #includestdio.h #includestdlib.h #includeunistd.h #includesignal.hvoid docatch(int signo) {printf(%d signal is catched\n,signo); }int main(void) {int ret;struct sigaction act;act.sa_handler docatch;sigemptyset(act.sa_mask); sigaddset(act.sa_mask,SIGQUIT);act.sa_flags 0; //默认属性 信号捕捉函数执行期间自动屏蔽本信号 ret sigaction(SIGINT,act,NULL);if(ret 0){ perror(sigaction error);exit(1);} while(1);return 0; }信号捕捉特性 进程正常运行时默认 PCB 中有一个信号屏蔽字假定为☆它决定了进程自动屏蔽哪些信号。当注册了 某个信号捕捉函数捕捉到该信号以后要调用该函数。而该函数有可能执行很长时间在这期间所屏蔽 的信号不由☆来指定。而是用 sa_mask 来指定。调用完信号处理函数再恢复为☆。XXX 信号捕捉函数执行期间XXX 信号自动被屏蔽。阻塞的常规信号不支持排队产生多次只记录一次。后 32 个实时信号支持排队
http://www.sadfv.cn/news/101139/

相关文章:

  • 用手机做服务器做网站什么是软文写作
  • 陕西省建设厅网站查询群晖wordpress英文
  • 金环建设集团网站关键字查找
  • 如何让百度快速收录网站郑州网站建设方案服务
  • 宁波网站推广优化联系电话网站开发过程中遇到的问题
  • 网站建设运营费用包括哪些多用户 wordpress
  • 校园门户网站廉洁长沙考试
  • 宁波自助建站系统wordpress 256m内存
  • wordpress超链接百度seo整站优化
  • 农家乐网站源码wordpress d8
  • 中铁集团网站建设网站开发用哪种语言
  • 网站建设对旅游意义提高网页加载速度的方式
  • 网站运营需要哪些知识陈木胜个人资料
  • 网站续费模板梧州市建设局网站
  • 自己有网站怎么做点卡?考互联网营销师证书要多少钱
  • 上传网站需要什么软件网站地图的制作
  • 用虚拟主机做网站湖南长沙招聘
  • 上海摄影网站建设深圳宣传片制作设计
  • 大庆建设集团网站长安大学门户网站是谁给做的
  • 高端网站建设专家多多视频
  • 大连网站建设案例网页设计作品欣赏分析
  • wordpress百度网站地图网站建设标准
  • 百度站长工具登录方式西夏区建设交通网站
  • 网站建设哪个公司网页制作软件下载
  • 网站后台密码存在哪各种网站推广是怎么做的
  • 鞍钢节能公司网站开发前端开发工程师的工作内容
  • 陕西门户网站建设iis添加网站
  • 收录网站排名深圳网站建设公司报价单
  • 临汾哪里有做网站的网络618营销策划方案
  • 上海 外贸网站网站的专业