X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/0cf90cca0c924622f3fee8d2a3fafa8238363dc6..b6ff3c7dbab3f40d03389808d95ac27d416c35e3:/lunaix-os/uprog/init.c?ds=sidebyside diff --git a/lunaix-os/uprog/init.c b/lunaix-os/uprog/init.c index c0c3fdd..b78cd3b 100644 --- a/lunaix-os/uprog/init.c +++ b/lunaix-os/uprog/init.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -6,24 +7,29 @@ int main(int argc, const char** argv) { - int errno = 0; + int err = 0; - if ((errno = open("/dev/tty", 0)) < 0) { + if ((err = open("/dev/tty", 0)) < 0) { syslog(2, "fail to open tty (%d)\n", errno); return 0; } - if ((errno = dup(errno)) < 0) { + if ((err = dup(err)) < 0) { syslog(2, "fail to setup tty i/o (%d)\n", errno); return 0; } - printf("(%p) user space!\n", main); + printf("(%p) user space!\n", (void*)main); + + if ((err = symlink("/usr", "/mnt/lunaix-os/usr"))) { + syslog(2, "symlink /usr:/mnt/lunaix-os/usr (%d)\n", errno); + return 0; + } pid_t pid; if (!(pid = fork())) { - int err = execve("/mnt/lunaix-os/usr/ls", NULL, NULL); - printf("fail to execute (%d)\n", err); + err = execve("/usr/sh", NULL, NULL); + printf("fail to execute (%d)\n", errno); _exit(err); }