sleep()函数 1.sleep()函数作用:让进程睡眠 2.能被信号打断,然后处理信号函数以后,就不再睡眠,直接向下执行代码 3.sleep函数的返回值是剩余秒数
//sleep 函数 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/wait.h> #include <signal.h> void catch_signal(int sign) { switch(sign) { case SIGINT: printf("accept signal! "); break; default: break; } } int main(int arg,char *args[]) { //注册信号 if(signal(SIGINT,catch_signal)==SIG_ERR) { perror("signal error"); return-1; } int num=0; num=sleep(100); //手动执行 ctrl+C 进程被唤醒 if(num>0) { printf("sleep()函数被打算睡眠,醒过来了! "); } //说明:sleep()函数是可中断睡眠 printf("新的测试! "); //再次设计sleep()函数,让其sleep需要的时间 num=15; do{ num=sleep(num); printf("被唤醒了,但是还要继续睡眠!剩余时间%d ",num); }while(num); printf("game over! "); return 0; }
int raise(int sig) --给自己发送信号,raise(sig)等价于kill(getpid(),sig) killpg --给进程组发送信号,killpg(pgrp,sig)等价于kill(-pgrp,sig) sigqueue --给进程发送信号,支持排队,可以附带信息