zoukankan      html  css  js  c++  java
  • [学习笔记]可靠信号与不可靠信号编程实践

    可靠信号、不可靠性信号的观察

    综合案例

    1、  创建子进程和父进程

    2、  注册SIGINT非实时信号  SIGRTMIN 实时信号 添加到到进程阻塞中

    3、  注册用户自定义信号SIGUSR1

    4、  子进程发送3次非实时信号,发3次实时信号

    5、  子进程发送 SIGUSR1解除信号阻塞;

    6、  观察实时信号和非实时信号的表现与区别!

    7、   

    man手册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);

                  }

    flags关键字选项很多,能让sigaction函数很强大。。。。

    请你仔细阅读man手册看flags意思

    三种睡眠函数

    q  unsigned int sleep(unsigned int seconds); 秒

    若被中断打断,返回剩余时间

    q  int usleep(useconds_t usec); 微妙

    若被中断打断,返回剩余时间 

    q  int nanosleep(const struct timespec *req, struct timespec *rem);纳秒时间

    要睡眠的时间req;剩余睡眠时间,如果要中断,通过rem返回过来。

    三种时间结构

    time_t  秒

    struct timeval {

             long    tv_sec;         /* seconds */

             long    tv_usec;        /* microseconds */微妙

    };

    struct timespec { 纳秒

             time_t tv_sec;        /* seconds */

             long   tv_nsec;       /* nanoseconds */

    };

    setitime函数: 间隙性产生

    q  包含头文件<sys/time.h>

    q  功能setitimer()比alarm功能强大,支持3种类型的定时器

    q  原型:

    int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue));

    q  参数

    q  第一个参数which指定定时器类型

    q  第二个参数是结构itimerval的一个实例,结构itimerval形式

    q  第三个参数可不做处理。

    q  返回值:成功返回0失败返回-1

    q  ITIMER_REAL:经过指定的时间后,内核将发送SIGALRM信号给本进程

    q  ITIMER_VIRTUAL :程序在用户空间执行指定的时间后,内核将发送SIGVTALRM信号给本进程

    q  ITIMER_PROF :进程在内核空间中执行时,时间计数会减少,通常与ITIMER_VIRTUAL共用,代表进程在用户空间与内核空间中运行指定时间后,内核将发送SIGPROF信号给本进程。

    思考why ITIMER_PROF存在?

    (备注:一般指cpu运行时间,比如,cpu在运行一段时间后,产生信号给本进程。。。。可见,是需要这样的信号)。

  • 相关阅读:
    HDU 1058
    Codeforces 349C
    HDU 2602
    HDU 2571
    HDU 2955
    HDU 2084
    HDU 1003
    HDU 1506 & 1505
    POJ 1854
    HDU 2095
  • 原文地址:https://www.cnblogs.com/shichuan/p/4448069.html
Copyright © 2011-2022 走看看