Oracle
 sql >> Base de données >  >> RDS >> Oracle

prototype ioctl dans la libc solaris

Votre ioctl sur /devices/pseudo/[email protected]:poll périphérique (ou /dev/pool ) semble être géré par la fonction noyau du fichier common/io/devpoll.c (copie en ligne - http://fxr.watson.org/fxr/source/common/io/devpoll.c?v=OPENSOLARIS )

Plus exact, par le dpioctl fonction :

 692 dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp)

zhihuifan, après avoir vérifié votre stacktrace, je vois que votre programme s'est exécuté :

main() -> ... nteveque() -> ioctl()

Ensuite, le gestionnaire de signaux a été appelé. Je ne vois aucun envoi de signaux depuis dpioctl, donc je pense que le signal a été envoyé par une fonction externe (ou un programme ou par l'utilisateur) :

--- called from signal handler with signal 0 (SIGEXIT) ---

Ensuite, le gestionnaire de signaux de l'espace utilisateur a été appelé :

sigacthandler ->     call_user_handler ->     __sighndlr 
-> sslsstehdlr 

Le sslsstehdlr fait de nombreuses actions, et selon mes connaissances et les standards POSIX ("2.4 Concepts de signalisation" du numéro 6 des spécifications de base du groupe ouvert ; IEEE Std 1003.1, édition 2004), le gestionnaire de signaux ne peut appeler (directement ou indirectement) que les fonctions répertoriées dans le tableau

... énorme liste mais il n'y a pas de ptherad_sigmask ici...