Annotation of coherent/d/bin/chroot.c, revision 1.1

1.1     ! root        1: static char _version[]="chroot version 1.0";
        !             2: /*
        !             3:  * chroot - Change root
        !             4:  *
        !             5:  * usage: chroot dir program [args]
        !             6:  *
        !             7:  * Changes root to "dir" and runs "program".  "program" should be a full
        !             8:  * pathname relative to the new root.  "args" is an optional list of
        !             9:  * arguments for program.
        !            10:  */
        !            11: #include <stdio.h>
        !            12: #include <errno.h>
        !            13: 
        !            14: main(argc, argv)
        !            15: int argc;
        !            16: char *argv[];
        !            17: {
        !            18:        static char error_message[BUFSIZ];
        !            19: 
        !            20:        if (argc < 3) {
        !            21:                fprintf(stderr, "usage:  %s dir program [args]\n", argv[0]);
        !            22:        } else if (chroot(argv[1]) != 0) {
        !            23:                sprintf(error_message, "chroot failed: %s", argv[1]);
        !            24:                perror(error_message);
        !            25:        } else if (chdir("/") != 0) {
        !            26:                perror("chdir to / failed");
        !            27:        } else if (execv(argv[2], &argv[2]) == -1) {
        !            28:                sprintf(error_message, "exec failed: %s", argv[2]);
        !            29:                perror(error_message);
        !            30:        }
        !            31:        exit(1);
        !            32: }

unix.superglobalmegacorp.com

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