网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.10g DBMS_Scheduler本地特权提升.
.Oracle9i中的SQL*Plus.
.J2EE应用开发中与Oracle数据库的.
.实现数据仓库的upsert.
.随身携带的数据库.
.ORACLE的分布式管理.
.数据库视图的使用.
.Oracle9i里指针共享的增强.
.postfix日志中出现“Host not fo.
.如何选购Linux可以搭配的机器之电.
.使用Oracle Text构建全文搜索应用.
.ORACLE供应链管理系统.
.Oracle数据库中删除DUAL表后的处.
.sendmail的log里面may be forged.
.about kernel exploit.
.如何在 Linux 下通过 WEB 认证方.
.Section 6. Solutions to common.
.Oracle弱智900问五.
.将Oracle与Developer/2000安装在.
.破解Oracle中国高层频繁变动之谜.

Linux的信号机制

发表日期:2008-2-9



  信号是unix中所使用的进程通信的一种最古老的方法.系统使用它来同志一个或多个进程异步事件的发生.
  
  Linux系统库bits/signum.h对信号名作了定义:
  linux的大多数信号是提供给内核的,仅有少数几种信号可以在信号间发送.
  
  .SIGHUP 当终止一个终端时,内核就把这种信号发送给该终端所控制的所有进程.
  .SIGINT 当一个用户按下中断键(ctrl+c)后,内核就向该终端用关联的所有进程发送这个信号.
  .SIGQUIT 当用户按下(ctrl+),内核就向该终端用关联的所有进程发送这个信号.
  .SIGILL 当一个进程企图执行一条非法指令时,内核就发送这个信号.
  .SIGFPE 当产生浮点错误时,内核就发送这个信号.
  .SIGKILL 这是一个非常非凡的信号,他可以从一个进程发送到另一个进程,使接收到该信号的进程终止.内核偶然也发送这种信号.
  .SIGALRM 当一个定时器到时的时候,内核就发送这个信号.
  .SIGSTOP 子进程结束信号.UNIX用它来实现系统调用exit(),wait();
  
  信号的处理
  unix的系统调用signal()用于接受一个指定的信号,并可以指定相应的处理方法.
  
  在linux系统库signal.h中,它的说明如下:
  signal(int sig,sighandler_t handler);
  sig用于指定信号类型.handle是用于处理该信号的函数.
  handle还可以是:
  .SIG_IGN 忽略这个信号.
  .SIG_DFL 恢复对这个信号的默认处理.
  
  例如:
  #include
  #include
  #include
  
  main(){
  signal(SIGINT,SIG_IGN);
  printf("hello!n");
  sleep(10);
  printf("hellon");
  }
  上面的代码忽略了SININT信号.
  
  又例如:
  #include
  #include
  #include
  
  int catch(int sig);
  
  main(){
  signal(SIGINT,catch);
  printf("hello!n");
  sleep(10);
  printf("hello!n");
  }
  
  int catch(int sig){
  printf("catch signaln");
  return 1;
  }
  当用户按下ctrl+c时,进程被中断,catch()被执行.中断处理函数处理完毕后,转回断点执行下面的指令.
  
  当编写自己的中断处理函数时,注重下面两点:
  1.信号不能打断系统调用.
  2.信号不能打断信号处理函数.
上一篇:轻松切换X窗口管理器 人气:686
下一篇:在 Linux 下如何访问 Windows 分区 人气:833
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐