Question

Quels sont les points d'annulation POSIX? Je recherche une liste définitive des points d’annulation POSIX.

Je pose la question parce que j'ai un livre qui dit que accept () et select () sont des points d'annulation, mais j'ai vu des sites sur Internet prétendre que ils ne le sont pas.

De plus, si les points d’annulation Linux sont différents des points d’annulation POSIX, je souhaite également en obtenir la liste.

Était-ce utile?

La solution

La norme POSIX 1003.1-2003 fournit une liste dans la section Interfaces système. , puis Informations générales, puis Threads ( lien direct avec la permission de A Rex). ( Ajouté : POSIX 1003.1-2008 est maintenant disponible. sur le Web (toutes les 3872 pages, en PDF et HTML). Vous devez vous enregistrer (gratuit). Je l’ai obtenu à partir du Ouvrir la librairie de groupe .)

Points d'annulation

  

Des points d'annulation doivent apparaître lorsqu'un thread exécute les fonctions suivantes:

     
      
  • accepter ()
  •   
  • aio_suspend ()
  •   
  • clock_nanosleep ()
  •   
  • close ()
  •   
  • connect ()
  •   
  • creat ()
  •   
  • fcntl () (lorsque l'argument cmd est F_SETLKW)
  •   
  • fdatasync ()
  •   
  • fsync ()
  •   
  • getmsg ()
  •   
  • getpmsg ()
  •   
  • lockf ()
  •   
  • mq_receive ()
  •   
  • mq_send ()
  •   
  • mq_timedreceive ()
  •   
  • mq_timedsend ()
  •   
  • msgrcv ()
  •   
  • msgsnd ()
  •   
  • msync ()
  •   
  • nanosleep ()
  •   
  • open ()
  •   
  • pause ()
  •   
  • 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 ()
  •   
  • system ()
  •   
  • tcdrain ()
  •   
  • usleep ()
  •   
  • wait ()
  •   
  • waidid ()
  •   
  • waitpid ()
  •   
  • write ()
  •   
  • writev ()
  •   


  

Un point d'annulation peut également se produire lorsqu'un thread exécute les fonctions suivantes:


  
      
  • access ()
  •   
  • 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 () (Pour toute valeur de l'argument cmd. [Probablement sauf F_SETLKW qui est répertorié.]
  •   
  • fflush ()
  •   
  • fgetc ()
  •   
  • fgetpos ()
  •   
  • fgets ()
  •   
  • fgetwc ()
  •   
  • fgetws ()
  •   
  • fmtmsg ()
  •   
  • fopen ()
  •   
  • fpathconf ()
  •   
  • fprintf ()
  •   
  • 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 () (si opterr est différent de zéro.)
  •   
  • getprotobyname ()
  •   
  • getprotobynumber ()
  •   
  • getprotoent ()
  •   
  • getpwent ()
  •   
  • getpwnam ()
  •   
  • getpwnam_r ()
  •   
  • getpwuid ()
  •   
  • getpwuid_r ()
  •   
  • obtient ()
  •   
  • 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 ()
  •   
  • met ()
  •   
  • pututxline ()
  •   
  • putwc ()
  •   
  • putwchar ()
  •   
  • readdir ()
  •   
  • readdir_r ()
  •   
  • remove ()
  •   
  • renommer ()
  •   
  • rembobiner ()
  •   
  • 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 ()
  •   


  

Une implémentation n'introduira pas de points d'accès dans les autres fonctions spécifiées dans le présent volume de la norme IEEE Standard 1003.1-2001.

     

Les effets secondaires de l’action sur une demande d’appel suspendue pendant un appel de fonction sont les mêmes que ceux observés dans un programme monofil lorsque l’appel à une fonction est interrompu par un signal et la fonction donnée renvoie [EINTR]. De tels effets secondaires se produisent avant que des gestionnaires de nettoyage d'annulation ne soient appelés.

     

Lorsqu'un thread a la possibilité d'annulation activée et qu'une requête d'annulation est faite avec ce thread en tant que cible et que le thread appelle ensuite toute fonction possédant un point d'annulation (tel que pthread_testcancel () ou read ()), la demande d'annulation doit être activé avant le retour de la fonction. Si un fil a une capacité d'annulation

Autres conseils

Consultez la page de manuel de pthread_cancel pour obtenir des informations complémentaires et rapides.

Informations supplémentaires: depuis le noyau 2.6, Linux utilise la bibliothèque de threads NPTL conforme à POSIX. Par conséquent, les points d'annulation doivent être identiques à ceux décrits ci-dessus pour les implémentations Linux récentes.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top