sql >> Base de Datos >  >> RDS >> Oracle

prototipo ioctl en solaris libc

Su ioctl en /devices/pseudo/[email protected]:poll dispositivo (o /dev/pool ) parece ser manejado por la función del núcleo del archivo common/io/devpoll.c (copia en línea - http://fxr.watson.org/fxr/source/common/io/devpoll.c?v=OPENSOLARIS )

Más exacto, por el dpioctl función:

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

zhihuifan, después de verificar su stacktrace, veo que su programa se ejecutó:

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

Luego se llamó al manejador de señales. No veo el envío de señales desde dpioctl, así que creo que la señal fue enviada por alguna función externa (o programa o por el usuario):

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

Luego se llamó al manejador de señales del espacio de usuario:

sigacthandler ->     call_user_handler ->     __sighndlr 
-> sslsstehdlr 

El sslsstehdlr hizo muchas acciones, y de acuerdo con mi conocimiento y los estándares POSIX ("2.4 Conceptos de señales" de The Open Group Base Specifications Edición 6; IEEE Std 1003.1, edición de 2004), el controlador de señales solo puede llamar (directa o indirectamente) a las funciones enumeradas en la tabla

... enorme lista pero no hay ptherad_sigmask aquí...