Ответ 1
Стандарт POSIX 1003.1-2003 предоставляет список в разделе "Системные интерфейсы", затем "Общая информация", затем "Темы" (прямая ссылка, предоставленная A. Rex). (Добавлено: POSIX 1003.1-2008 теперь доступен в Интернете (все его 3872 страницы в PDF и HTML). Вам необходимо зарегистрироваться ( бесплатно). Я получил это от Open Group Bookstore.)
Точки отмены
Точки отмены должны произойти, когда поток выполняет следующие функции:
- принимает()
- aio_suspend()
- clock_nanosleep()
- близко()
- подключения()
- Creat()
- fcntl() (Когда аргумент cmd - F_SETLKW)
- fdatasync()
- FSYNC()
- getmsg()
- getpmsg()
- lockf()
- mq_receive()
- mq_send()
- mq_timedreceive()
- mq_timedsend()
- msgrcv()
- msgsnd()
- msync()
- nanosleep()
- открыт()
- пауза()
- Опрос()
- pread()
- pselect()
- pthread_cond_timedwait()
- pthread_cond_wait()
- pthread_join()
- pthread_testcancel()
- putmsg()
- putpmsg()
- pwrite()
- прочитать()
- readv()
- RECV()
- recvfrom()
- recvmsg()
- выберите()
- sem_timedwait()
- sem_wait()
- отправить()
- sendmsg()
- SendTo()
- sigpause()
- sigsuspend()
- sigtimedwait()
- sigwait()
- sigwaitinfo()
- сон()
- система()
- tcdrain()
- USleep()
- ожидание()
- waidid()
- waitpid()
- записи()
- writev()
Точка отмены может также возникать, когда поток выполняет следующие функции:
- Доступ()
- asctime()
- asctime_r()
- catclose()
- catgets()
- catopen()
- closedir()
- closelog()
- ctermid()
- CTime()
- ctime_r()
- dbm_close()
- dbm_delete()
- dbm_fetch()
- dbm_nextkey()
- dbm_open()
- dbm_store()
- dlclose()
- dlopen()
- endgrent()
- endhostent()
- endnetent()
- endprotoent()
- endpwent()
- endservent()
- endutxent()
- fclose()
- fcntl() (для любого значения аргумента cmd. [Предположительно кроме F_SETLKW, который указан.]
- fflush()
- fgetc()
- fgetpos()
- fgets()
- fgetwc()
- fgetws()
- fmtmsg()
- Еореп()
- fpathconf()
- fprintf()
- fputc()
- fputs()
- fputwc()
- fputws()
- Fread()
- freopen()
- fscanf()
- FSEEK()
- fseeko()
- fsetpos()
- fstat()
- ftell()
- ftello()
- FTW()
- fwprintf()
- FWRITE()
- fwscanf()
- getaddrinfo()
- ЕОКП()
- getc_unlocked()
- GetChar()
- getchar_unlocked()
- getcwd()
- GETDATE()
- getgrent()
- getgrgid()
- getgrgid_r()
- getgrnam()
- getgrnam_r()
- gethostbyaddr()
- gethostbyname()
- gethostent()
- gethostid()
- gethostname()
- getlogin()
- getlogin_r()
- getnameinfo()
- getnetbyaddr()
- getnetbyname()
- getnetent()
- getopt() (если opterr отличен от нуля.)
- getprotobyname()
- getprotobynumber()
- getprotoent()
- getpwent()
- getpwnam()
- getpwnam_r()
- getpwuid()
- getpwuid_r()
- получает()
- getservbyname()
- getservbyport()
- getservent()
- getutxent()
- getutxid()
- getutxline()
- getwc()
- getwchar()
- getwd()
- Глоб()
- iconv_close()
- iconv_open()
- IOCTL()
- ссылка()
- LocalTime()
- localtime_r()
- lseek()
- lstat()
- mkstemp()
- указываете ей()
- nftw()
- opendir()
- openlog()
- pathconf()
- pclose()
- PError()
- POPEN()
- posix_fadvise()
- posix_fallocate()
- posix_madvise()
- posix_openpt()
- posix_spawn()
- posix_spawnp()
- posix_trace_clear()
- posix_trace_close()
- posix_trace_create()
- posix_trace_create_withlog()
- posix_trace_eventtypelist_getne
- posix_trace_eventtypelist_rewin
- posix_trace_flush()
- posix_trace_get_attr()
- posix_trace_get_filter()
- posix_trace_get_status()
- posix_trace_getnext_event()
- posix_trace_open()
- posix_trace_rewind()
- posix_trace_set_filter()
- posix_trace_shutdown()
- posix_trace_timedgetnext_event (
- posix_typed_mem_open()
- Е()
- pthread_rwlock_rdlock()
- pthread_rwlock_timedrdlock()
- pthread_rwlock_timedwrlock()
- pthread_rwlock_wrlock()
- putc()
- putc_unlocked()
- putchar()
- putchar_unlocked()
- кладет()
- pututxline()
- putwc()
- putwchar()
- READDIR()
- readdir_r()
- удалить()
- переименование()
- перемотка назад()
- rewinddir()
- зсапЕ()
- seekdir()
- semop()
- setgrent()
- sethostent()
- setnetent()
- setprotoent()
- setpwent()
- setservent()
- setutxent()
- стат()
- strerror()
- strerror_r()
- STRFTIME()
- символическая()
- синхронизация()
- системный журнал()
- tmpfile()
- tmpnam()
- ttyname()
- ttyname_r()
- tzset()
- ungetc()
- ungetwc()
- Unlink()
- vfprintf()
- vfwprintf()
- vprintf()
- vwprintf()
- wcsftime()
- wordexp()
- wprintf()
- wscanf()
Реализация не должна вводить точки отмены в любые другие функции, указанные в этом томе IEEE Std 1003.1-2001.
Побочные эффекты воздействия на запрос отмены при приостановке во время вызова функции совпадают с побочными эффектами, которые могут наблюдаться в однопоточной программе, когда вызов функции прерывается сигналом, а данная функция возвращает [EINTR]. Любые такие побочные эффекты возникают до тех пор, пока не будут вызваны обработчики очистки отмены.
Всякий раз, когда поток имеет отмену включен и запрос на отмену был сделан с этим потоком в качестве цели, а затем поток вызывает любую функцию, которая является точкой отмены (например, pthread_testcancel() или read()), запрос отмены должны действовать до возвращения функции. Если поток имеет возможность отмены, и запрос на отмену выполняется с потоком в качестве цели, в то время как поток приостанавливается в точке отмены, поток должен быть разбужен, и на запрос аннулирования будет действовать. Однако, если поток приостанавливается в точке отмены, и событие, для которого оно ожидает, происходит до того, как будет применен запрос аннулирования, не указано, будет ли выполняться запрос на отмену или будет ли ожидаться запрос отмены, и поток возобновится выполнение.
Тьфу! Невозможно заставить стол работать очень хорошо, он выглядел нормально в предварительном просмотре и ничего подобного таблице впоследствии. Посмотрите URL-адрес информации! Существует много возможных пунктов отмены.