当我研究了一些关于用 C 进行 unix 编程的知识时,我了解到在信号处理程序中应该避免无法重入的函数,但是如果我有类似的东西:
int main(int argc, char** argv){
     ...
    fileFd=open(...) 
    signal(SIGUSR1, signalHandler)
    ...
}
void signalHandler(int signo){
    switch(signo){
    case SIGUSR1:
        myExit(EXIT_FAILURE);   
        break;
    default: 
        break;
    }
}
myExit 在哪里
void myExit(int ret){
    ...DO STUFF...
    close(fileFd);
    exit(ret);
}
并且 fileFd 是一个全局变量,如果我没记错的话,这使得 myExit 成为不可重入的......但在信号处理程序中使用它仍然是一个问题,即使它会导致程序退出?谢谢,如果这是一个愚蠢的问题,任何帮助表示赞赏和抱歉。