- int kill(pid_t pid,int sig);
- int raise(int sig);
- unsigned alarm(unsigned seconds);
- /*sigset_t is signal mask*/
- int sigaddset(sigset_t *set,int signo);
- int sigdelset(sigset_t *set,int signo);
- int sigemptyset(sigset_t *set);
- int sigfillset(sigset_t *set);
- int sigismember(sigset_t *set,int signo);
- /*
- *how can be SIG_BLOCK,SIG_UNBLOCK,SIG_SETMASK
- *SIG_BLOCK will take signal add into signal class
- *SIG_UNBLOCK will take out signal from signal class
- *SIG_SETMASK will set signal class "signal class 信號集"
- */
- int sigprocmask(int how,const sigset_t *restrict set,sigset_t *restrict oset);
- /*if set sa_flags to 0,use sa_handler
- if set sa_flags to SA_SIGINFO,use sa_sigaction
- */
- int sigaction(int sig,const struct sigaction *restrict act,struct sigaction *restrict oact);
- struct sigaction{
- void (*sa_handler)(int signo);
- sigset_t sa_mask;
- int sa_flags;
- void (*sa_sigaction)(int signo,siginfo_t *info,void *contest);
- };
- /*si_code:SI_USER,SI_QUEUE,SI_TIMER,SI_ASYNCIO,SI_MESGQ*/
- struct{
- int si_signo;
- int si_code;
- union sigval si_value;
- }siginfo_t;
- union sigval{
- int sival_int;
- void *sival_ptr;
- }
- /*restrict說明這個變量沒有別的指針可以修改,讓編譯器生成只讀內存一次的代碼。*/
- int pause(void);
- int sigsuspend(const sigset_t *sigmask);
- int sigwait(const sigset_t *restrict sigmask,int *restrict signo);
- void siglongjmp(sigjmp_buf env,int val);
- int sigsetjmp(sigjmp_buf env,int savemask);
- #include <aio.h>
- int aio_read(struct aiocb *aiocbp);
- int aio_write(struct aiocb *aiocbp);
- int aio_error(const struct aiocb *aiocbp);
- ssize_t aio_return(struct aiocb *aiocbp);
- int aio_suspend(const struct aiocb *const list[],int nent,const struct timespec *timeout);
- int aio_cancel(int fildes,struct aiocb *aiocbp);
- struct aiocb{
- int aio_fildes;
- volatile void *aio_buf;
- size_t aio_nbytes;
- off_t aio_offset;
- int aio_reqprio;
- struct sigevent aio_sigevent;
- int aio_lio_opcode;
- };
- struct sigevent{
- int sigev_notify; /*SIGEV_SIGNAL and SIGEV_NONE*/
- int sigev_signo;
- union sigval sigev_value;
- }
- union sigval{
- int sival_int;
- void *sival_ptr; /* = &aiocb */
- }
- int sigqueue(pid_t pid,int signo,const union sigval value);
信號記錄
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.