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.

È stato utile?

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.

http://www.ddj.com/linux-open-source/184406204

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top