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; }
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); }