Annotation of researchv10no/cmd/basic/bite/src/bsys.c, revision 1.1.1.1

1.1       root        1: /* Copyright Bell Telephone Laboratories Whippany, N.J.
                      2: 
                      3:  *     /////////////////////////////////////
                      4:  *     /////////////////////////////////////
                      5:  *     ////////////// bsys.c ///////////////
                      6:  *     /// J. P. Hawkins WH X4610 8C-001 ///
                      7:  *     ///// Fri Aug 24 17:26:01 1979 //////
                      8:  *     /////////////////////////////////////
                      9:  *     /////////////////////////////////////
                     10: 
                     11:  * Call system command from basic
                     12:  *
                     13:  */
                     14: /*   "@(#) bsys.c:  V 1.5  6/17/81" */
                     15: #include       "bas.h"
                     16: 
                     17: char   shpath[] = "/bin/sh";
                     18: char   shname[] = "sh";
                     19: extern char _string[];
                     20: bsys()
                     21: {
                     22: #ifdef RESTRICT
                     23:        printf("RESTRICTED SHELL '!' NOT FUNCTIONAL\n");
                     24:        return(-1);
                     25: #else
                     26:        callsys(expr);
                     27:        return(0);
                     28: #endif
                     29: }
                     30: /*
                     31:  *
                     32:  * SYSTEM CALL ROUTINE
                     33:  */
                     34: callsys(string)
                     35: char   string[];
                     36: {
                     37:        int t,status;
                     38: 
                     39:        if((t = fork()) == 0)
                     40:                if(execl(shpath,shname,"-c",string, 0) < 0)
                     41:                {
                     42:                        error(inst.thing.linno, 31);
                     43:                        printf("%s NOT FOUND\n",string);
                     44:                        exit(0);
                     45:                }
                     46:        if(t == -1) abt("t == -1 from fork");
                     47:        while(t != wait(&status))  ;
                     48:        return 0;
                     49: }
                     50: 
                     51: /*
                     52:  *
                     53:  * error abort
                     54:  */
                     55: abt(s)
                     56: char *s;
                     57: {
                     58:        printf("\nFailed to fork. %s\nReturn to interpreter\n", s);
                     59: }

unix.superglobalmegacorp.com

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