是否有任何合理完整的列表,其中POSIX中的哪些功能在EINTR
接收或处理信号时被中断,即使没有信号处理程序或者处理程序是否已安装SA_RESTART
?一些例子:
select
nanosleep
POSIX 说:
如果信号捕获函数执行 return 语句,则被中断函数的行为应如该函数单独描述的那样,除非不安全函数另有说明。
因此,要么单独查看所有函数,要么过滤手册页中的 EINTR 和 POSIX。我做了后者并得到:
接受、aio_suspend、catclose、catgets、chmod、chown、clock_nanosleep、关闭、closedir、连接、dup、errno、exec、fallocate、fchdir、fchmod、fchown、fclose、fcntl、fflush、fgetc、fgetwc、fopen、fork、fputc、 fputwc、freopen、fseek、fsetpos、fsync、ftruncate、getgrent、getgrgid、getgrnam、getmsg、getpwent、getpwnam、getpwuid、ioctl、lchown、lio_listio、lockf、mq_open、mq_receive、mq_send、msgop、msgrcv、msgsnd、nanosleep、打开、暂停,pclose,轮询,posix_fallocate,posix_mem_offset,posix_trace_create,posix_trace_get_filter,posix_trace_getnext_event,posix_trace_open,posix_trace_start,posix_typed_mem_get_info,posix_typed_mem_open,printf,pthread_atfork,pthread_attr_getdetachstate,pthread _attr_getguardsize、pthread_attr_getinheritsched、pthread_attr_getschedparam、pthread_attr_getschedpolicy、pthread_attr_getscope、pthread_attr_getstack、pthread_attr_getstackaddr、pthread_attr_getstacksize、pthread_attr_init、pthread_barrier_init、 pthread_barrier_wait、pthread_barrierattr_getpshared、pthread_barrierattr_init、pthread_cancel、pthread_cleanup_push、pthread_cond_init、pthread_cond_signal、pthread_cond_wait、pthread_condattr_getclock、pthread_condattr_getpshared、pthread_condattr_init、pthread_create、pthread_detach、pthread_equal、pthread_ getconcurrency、pthread_getschedparam、pthread_getspecific、pthread_join、pthread_key_create、pthread_key_delete、pthread_kill、pthread_mutex_getprioceiling、pthread_mutex_init、pthread_mutex_lock、pthread_mutex_timedlock、 pthread_mutexattr_getprioceiling、pthread_mutexattr_getprotocol、pthread_mutexattr_getpshared、pthread_mutexattr_gettype、pthread_mutexattr_init、pthread_once、pthread_rwlock_init、pthread_rwlock_rdlock、pthread_rwlock_timedrdlock、pthread_rwlock_timedwrlock、pthread_rwlock_unlock、pthread_r wlock_wrlock、pthread_rwlockattr_getpshared、pthread_rwlockattr_init、pthread_self、pthread_setschedprio、pthread_spin_init、pthread_spin_lock、pthread_spin_unlock、pthread_testcancel、putmsg、读取、recv、recvfrom、recvmsg、 scanf、select、select_tut、sem_open、sem_timedwait、sem_wait、semop、发送、sendmsg、sendto、shm_open、sigaction、siginterrupt、sigpause、sigprocmask、sigset、sigsuspend、sigvec、sigwaitinfo、statfs、statvfs、系统、tcdrain、tcsetattr、tmpfile ,截断、ualarm、usleep、等待、waitid 和写入