1.信号
1.pause
      int pause(void);
       功能:
         让进程睡眠,直到接收到信号(捕捉)才能继续向下执行
2.alarm
      unsigned int alarm(unsigned int seconds);
       功能:
         定时seconds秒后给调用进程发送SIGALRM信号
       参数:
         seconds:定时的秒数
       返回值:
         成功返回之前设定剩余的秒数  
eg:alarm和pause的用法
// *************************************************   alarm的用法
void handler(int signo)
{printf("信号来了!\n");alarm(5);                     //每次执行完重新延迟五秒发送信号return;
}int main(void)
{int i = 0;signal(SIGALRM,handler);      //将SIGALRM(定时结束信号)信号,捕捉自定义为执行handler函数alarm(5);                     //延迟五秒给程序发送SIGALRM(缺省的默认指令,发送定时结束的信号)while(1){for(i=5;i>0;--i){printf("%d\n",i);sleep(1);}}return 0;
}
// **************************************************************               实现sleep的功能
void handler(int signo)
{return;                        //相当于收到信号后啥也不干,“忽略”信号
}int Mysleep(int seconds)
{signal(SIGALRM,handler);    // 将计时结束的信号自定义为执行函数handleralarm(seconds);          //seconds 秒后 内核发送计时结束的信号,没有程序等待的作用pause();                //挂起,到接收信号(SIGALRM),开始程序运行,防止函数直接结束掉signal(SIGALRM,SIG_DFL);  //将信号处理为系统默认的方式,用完要改回去防止后面用的时候出错return 0;
}int main(void)
{printf("sleep up!\n");Mysleep(5);printf("sleep down!\n");return 0;
}
3.kill
      int kill(pid_t pid, int sig);
       功能:
         给PID对应的进程发送sig信号
       参数:
         pid:进程ID号
         sig:信号的编号
       返回值:
         成功返回0 
         失败返回-1 
eg:kill的用法
//*****************************************************************   kill的用法int main(void)
{pid_t pid;pid = fork();if(pid == -1){perror("fail to fork");return -1;}if(pid == 0){while(1){printf("子程序还活着!!!\n");sleep(1);                       //间隔一秒确认程序状态}}else if(pid > 0){sleep(3);                      //延迟三秒‘杀死’kill(pid,SIGKILL);}
}