Il est parfois pensé que exceptfds est nécessaire pour détecter les erreurs, mais c'est une idée fausse. Les erreurs seront signalées dans readfds. Bien que POSIX exige (et même des appels le paramètre errorfds), il dépend de l'OS si des erreurs sont également signalées dans exceptfds. Vraiment, ce paramètre est uniquement nécessaire si vous vous souciez de conditions exceptionnelles, mais rarement est-il besoin de détecter ceux.
Ce qui est considéré comme un état exceptionnel, dépend du type de descripteur de fichier, mais de loin les plus courantes d'utilisation est sur un socket TCP, où il indique que " l'out-of-band de données est disponible pour être lues à l'aide d' recv()
avec l' MSG_OOB
drapeau. Cependant, TCP out-of-band de données a un certain nombre de bizarreries (par exemple, seulement 1 octet peut être en circulation), et comme un résultat est rarement utilisé.
Dans les noyaux Linux récents exceptfds peut être utilisé pour détecter lorsque certains sysfs modification des attributs. La valeur courante de l'attribut peut être lu en lisant le fichier approprié en vertu de l' /sys
, et un select()
sur le descripteur de fichier va drapeau exceptfds lorsque l'attribut change. Cependant actuellement, cela ne fonctionne que pour certains de ces attributs, et pour monter les changements (/proc/mounts
).
Aussi certains des pilotes de périphérique drapeau certaines spécifiques à l'appareil à l'aide du exceptfds.