Annotation of coherent/d/bin/chroot.c, revision 1.1.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.