Annotation of researchv10no/libF77/old/main.c, revision 1.1

1.1     ! root        1: /* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */
        !             2: 
        !             3: #include <stdio.h>
        !             4: #include <signal.h>
        !             5: 
        !             6: int xargc;
        !             7: char **xargv;
        !             8: 
        !             9: main(argc, argv, arge)
        !            10: int argc;
        !            11: char **argv;
        !            12: char **arge;
        !            13: {
        !            14: int sigfdie(), sigidie(), sigqdie(), sigindie(), sigtdie();
        !            15: 
        !            16: xargc = argc;
        !            17: xargv = argv;
        !            18: signal(SIGFPE, sigfdie);       /* ignore underflow, enable overflow */
        !            19: signal(SIGIOT, sigidie);
        !            20: if( (int)signal(SIGQUIT,sigqdie) & 01) signal(SIGQUIT, SIG_IGN);
        !            21: if( (int)signal(SIGINT, sigindie) & 01) signal(SIGINT, SIG_IGN);
        !            22: signal(SIGTERM,sigtdie);
        !            23: 
        !            24: #ifdef pdp11
        !            25:        ldfps(01200); /* detect overflow as an exception */
        !            26: #endif
        !            27: 
        !            28: f_init();
        !            29: MAIN__();
        !            30: f_exit();
        !            31: }
        !            32: 
        !            33: 
        !            34: static sigfdie()
        !            35: {
        !            36: sigdie("Floating Exception", 1);
        !            37: }
        !            38: 
        !            39: 
        !            40: 
        !            41: static sigidie()
        !            42: {
        !            43: sigdie("IOT Trap", 1);
        !            44: }
        !            45: 
        !            46: 
        !            47: static sigqdie()
        !            48: {
        !            49: sigdie("Quit signal", 1);
        !            50: }
        !            51: 
        !            52: 
        !            53: 
        !            54: static sigindie()
        !            55: {
        !            56: sigdie("Interrupt", 0);
        !            57: }
        !            58: 
        !            59: 
        !            60: 
        !            61: static sigtdie()
        !            62: {
        !            63: sigdie("Killed", 0);
        !            64: }
        !            65: 
        !            66: 
        !            67: 
        !            68: static sigdie(s, kill)
        !            69: register char *s;
        !            70: int kill;
        !            71: {
        !            72: /* print error message, then clear buffers */
        !            73: fflush(stderr);
        !            74: fprintf(stderr, "%s\n", s);
        !            75: f_exit();
        !            76: fflush(stderr);
        !            77: 
        !            78: if(kill)
        !            79:        {
        !            80:        /* now get a core */
        !            81:        signal(SIGIOT, 0);
        !            82:        abort();
        !            83:        }
        !            84: else
        !            85:        exit(1);
        !            86: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.