init.c 823 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "basic-lib.h"
  2. int main(int argc, char** argv)
  3. {
  4. for (int i = 0; i < argc; ++i)
  5. write(0, argv[i], 0);
  6. const char* data = "Hello World from user space init\n";
  7. write(0, data, 33);
  8. int ret = fork();
  9. if (ret == 0) {
  10. write(0, "child\n", 6);
  11. exit(255);
  12. } else {
  13. write(0, "parent\n", 7);
  14. }
  15. char buf[128] = {};
  16. for (;;) {
  17. int n = read(0, buf, 5);
  18. if (n)
  19. write(0, buf, n);
  20. else
  21. write(0, "fuck!\n", 6);
  22. if (buf[0] == 'e' && buf[1] == 'x' && buf[2] == 'i' && buf[3] == 't') {
  23. write(0, "\nexited echo mode!\n", 19);
  24. break;
  25. }
  26. }
  27. for (;;) {
  28. int ret;
  29. pid_t pid = wait(&ret);
  30. (void)pid;
  31. pid += 1000;
  32. }
  33. return 0;
  34. }