Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

protótipo ioctl em solaris libc


Seu ioctl em /devices/pseudo/[email protected]:poll dispositivo (ou /dev/pool ) parece ser tratado pela função do kernel do arquivo common/io/devpoll.c (cópia online - http://fxr.watson.org/fxr/source/common/io/devpoll.c?v=OPENSOLARIS )

Mais exato, pelo dpioctl função:
 692 dpioctl(dev_t dev, int cmd, intptr_t arg, int mode, cred_t *credp, int *rvalp)

zhihuifan, depois de verificar seu stacktrace, vejo que seu programa foi executado:
main() -> ... nteveque() -> ioctl()

Então o manipulador de sinais foi chamado.. Não vejo envio de sinais do dpioctl, então acho que o sinal foi enviado por alguma função externa (ou programa ou pelo usuário):
--- called from signal handler with signal 0 (SIGEXIT) ---

Em seguida, o manipulador de sinal do espaço do usuário foi chamado:
sigacthandler ->     call_user_handler ->     __sighndlr 
-> sslsstehdlr 

O sslsstehdlr fiz muitas ações e de acordo com meu conhecimento e padrões POSIX ("2.4 Conceitos de sinal" do The Open Group Base Specifications Issue 6; IEEE Std 1003.1, 2004 Edition), o manipulador de sinal só pode chamar (direta ou indiretamente) funções listadas na tabela

... lista enorme, mas não há ptherad_sigmask aqui...