Пример #1
0
int
main(void)
{
    int cmd, ret;

    vfs_init(&vfs);

    // Set up filesystem
    create_dir(&vfs, "/etc");
    crond = create_dir(&vfs, "/etc/crond");
    create_dir(&vfs, "/home");
    pwd = create_dir(&vfs, "/home/user");
    pwd->owner = USER_UID;

    while (1) {
        // Simulate a period cron job

        do_cron();

        if (read_all(STDIN, &cmd, sizeof(cmd)) != sizeof(cmd))
            continue;

        if (cmd == -1)
            break;

        switch (cmd) {
        case CD:
            ret = do_cd();
            break;
        case READ:
            ret = do_read();
            break;
        case WRITE:
            ret = do_write();
            break;
        case LN:
            ret = do_ln();
            break;
        case RM:
            ret = do_rm();
            break;
        default:
            continue;
        }

        write_all(STDOUT, &ret, sizeof(ret));
    }

    vfs_destroy(&vfs);

    return 0;
}
Пример #2
0
int
main(int argc, char *argv[])
{
  char *ptr;

  if (NULL != (ptr = strrchr(argv[0], '/')))
    ptr++;
  else
    ptr = argv[0];

  if (strcmp(ptr, "e2tools") == 0)
    {
      if (argc < 2)
        {
            usage();
            exit(1);
        }
      ++argv;
      --argc;
      ptr = argv[0];
    }

  initialize_ext2_error_table();

  if (strcmp(ptr, "e2ls") == 0)
    exit(do_list_dir(argc, argv));
  else if (strcmp(ptr, "e2cp") == 0)
    exit(copy(argc, argv));
  else if (strcmp(ptr, "e2mkdir") == 0)
    exit(e2mkdir(argc, argv));
  else if (strcmp(ptr, "e2ln") == 0)
    exit(do_ln(argc, argv));
  else if (strcmp(ptr, "e2mv") == 0)
    exit(do_mv(argc, argv));
  else if (strcmp(ptr, "e2rm") == 0)
    exit(e2rm(argc, argv));
  else if (strcmp(ptr, "e2tail") == 0)
    exit(do_tail(argc, argv));
  else
    {
      fprintf(stderr, "Not implemented\n");
      exit(1);
    }
  return(0);
}