git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: shell and signal demo as loadable user executable
[lunaix-os.git]
/
lunaix-os
/
uprog
/
init.c
diff --git
a/lunaix-os/uprog/init.c
b/lunaix-os/uprog/init.c
index 0d1eebc9ed131a0db8f49a5cb7ada7d012f082c5..a7265c0e350c4c9b54187d5d7a2b94d77c8faf8b 100644
(file)
--- a/
lunaix-os/uprog/init.c
+++ b/
lunaix-os/uprog/init.c
@@
-1,4
+1,5
@@
#include <fcntl.h>
#include <fcntl.h>
+#include <stdio.h>
#include <sys/lunaix.h>
#include <unistd.h>
#include <sys/lunaix.h>
#include <unistd.h>
@@
-17,7
+18,16
@@
main(int argc, const char** argv)
return 0;
}
return 0;
}
- syslog(0, "(%p) user space!\n", main);
+ printf("(%p) user space!\n", (void*)main);
+
+ pid_t pid;
+ if (!(pid = fork())) {
+ int err = execve("/mnt/lunaix-os/usr/sh", NULL, NULL);
+ printf("fail to execute (%d)\n", err);
+ _exit(err);
+ }
+
+ waitpid(pid, NULL, 0);
return 0;
}
\ No newline at end of file
return 0;
}
\ No newline at end of file