Quali sono i punti di annullamento POSIX?
-
10-07-2019 - |
Domanda
Quali sono i punti di annullamento POSIX? Sto cercando un elenco definitivo di punti di annullamento POSIX.
Lo sto chiedendo perché ho un libro che dice accept ()
e select ()
sono punti di cancellazione, ma ho visto siti su Internet affermare che non lo sono.
Inoltre, se i punti di annullamento di Linux sono diversi dai punti di annullamento POSIX, ne voglio un elenco.
Soluzione
Lo POSIX 1003.1-2003 fornisce un elenco nella sezione Interfacce di sistema , quindi Informazioni generali, quindi Thread ( collegamento diretto per gentile concessione di A . Rex). ( Aggiunto : POSIX 1003.1-2008 è ora disponibile sul web (tutte le 3872 pagine di esso, in PDF e HTML). Devi registrarti (gratuitamente). Ci sono arrivato da Apri libreria di gruppo .)
Punti di cancellazione
I punti di annullamento si verificano quando un thread esegue le seguenti funzioni:
- accept ()
- aio_suspend ()
- clock_nanosleep ()
- close ()
- connect ()
- creat ()
- fcntl () (Quando l'argomento cmd è F_SETLKW)
- fdatasync ()
- fsync ()
- getMsg ()
- getpmsg ()
- lockf ()
- mq_receive ()
- mq_send ()
- mq_timedreceive ()
- mq_timedsend ()
- msgrcv ()
- msgsnd ()
- msync ()
- nanosleep ()
- open ()
- pausa ()
- poll ()
- pread ()
- pselect ()
- pthread_cond_timedwait ()
- pthread_cond_wait ()
- pthread_join ()
- pthread_testcancel ()
- putmsg ()
- putpmsg ()
- pwrite ()
- read ()
- readv ()
- recv ()
- recvfrom ()
- recvmsg ()
- select ()
- sem_timedwait ()
- sem_wait ()
- send ()
- sendmsg ()
- sendto ()
- sigpause ()
- sigsuspend ()
- sigtimedwait ()
- sigwait ()
- sigwaitinfo ()
- sleep ()
- Sistema ()
- tcdrain ()
- usleep ()
- wait ()
- waidid ()
- waitpid ()
- write ()
- writev ()
È possibile che si verifichi un punto di annullamento quando un thread esegue le seguenti funzioni:
- accesso ()
- 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 () (Per qualsiasi valore dell'argomento cmd. [Presumibilmente tranne F_SETLKW che è elencato.]
- fflush ()
- fgetc ()
- fgetpos ()
- fgets ()
- fgetwc ()
- fgetws ()
- fmtmsg ()
- f open ()
- fpathconf ()
- f printf ()
- fputc ()
- fputs ()
- fputwc ()
- fputws ()
- fread ()
- freopen ()
- fscanf ()
- fseek ()
- fseeko ()
- fsetpos ()
- fstat ()
- ftell ()
- ftello ()
- FTW ()
- fwprintf ()
- fwrite ()
- fwscanf ()
- getaddrinfo ()
- getc ()
- 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 () (se opterr è diverso da zero.)
- getprotobyname ()
- getprotobynumber ()
- getprotoent ()
- getpwent ()
- getpwnam ()
- getpwnam_r ()
- getpwuid ()
- getpwuid_r ()
- gets ()
- getservbyname ()
- getservbyport ()
- getservent ()
- getutxent ()
- getutxid ()
- getutxline ()
- getwc ()
- getwchar ()
- getwd ()
- glob ()
- iconv_close ()
- iconv_open ()
- ioctl ()
- link ()
- localtime ()
- localtime_r ()
- lseek ()
- lstat ()
- mkstemp ()
- mktime ()
- 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 ()
- printf ()
- pthread_rwlock_rdlock ()
- pthread_rwlock_timedrdlock ()
- pthread_rwlock_timedwrlock ()
- pthread_rwlock_wrlock ()
- putc ()
- putc_unlocked ()
- putchar ()
- putchar_unlocked ()
- put ()
- pututxline ()
- putwc ()
- putwchar ()
- readdir ()
- readdir_r ()
- rimuovi ()
- rinomina ()
- rewind ()
- rewinddir ()
- scanf ()
- seekdir ()
- semop ()
- setgrent ()
- sethostent ()
- setnetent ()
- setprotoent ()
- setpwent ()
- setservent ()
- setutxent ()
- stat ()
- strerror ()
- strerror_r ()
- strftime ()
- symlink ()
- sync ()
- syslog ()
- tmpfile ()
- tmpnam ()
- ttyname ()
- ttyname_r ()
- tzset ()
- ungetc ()
- ungetwc ()
- unlink ()
- vfprintf ()
- vfwprintf ()
- vprintf ()
- vwprintf ()
- wcsftime ()
- wordexp ()
- wprintf ()
- wscanf ()
Un'implementazione non introdurrà punti di accesso in altre funzioni specificate in questo volume di IEEE Std 1003.1-2001.
Gli effetti collaterali dell'azione su una richiesta di chiamata mentre è sospeso durante una chiamata di funzione sono gli stessi degli effetti collaterali che possono essere visti in un programma a thread singolo quando una chiamata a una funzione viene interrotta da un segnale e il data funzione restituisce [EINTR]. Tali effetti collaterali si verificano prima che vengano chiamati i gestori di pulizia di annullamento.
Quando un thread ha l'annullabilità abilitata e viene fatta una richiesta di annullamento con quel thread come destinazione, e il thread chiama quindi qualsiasi funzione che ha un punto di annullamento (come pthread_testcancel () o read ()), la richiesta di annullamento deve essere attuato prima che la funzione ritorni. Se una discussione ha cancellabilità
Altri suggerimenti
Consulta la pagina man pthread_cancel per ulteriori e veloci informazioni.
Informazioni aggiuntive: dal kernel 2.6, Linux ha usato la libreria thread NPTL che è conforme POSIX, quindi i punti di cancellazione dovrebbero essere come sopra per le recenti installazioni Linux.