int gcmd_edi(char *cmd, t_pm *pm) { if (nsp_get(cmd) != 1) { cmd_put(-1, cmd); cmd_send(pm, "mct\n"); return (-1); } ping_save(pm); cmd_put(1, cmd); return (1); }
void game_client_sync(fs_file demo_fp) { union cmd *cmdp; while ((cmdp = game_proxy_deq())) { if (demo_fp) cmd_put(demo_fp, cmdp); game_run_cmd(cmdp); cmd_free(cmdp); } }
int read_cmd(int sock, char *cmd) { if (ft_strequ(cmd, "quit")) return (1); else if (ft_strequ(cmd, "pwd")) cmd_pwd(sock); else if (ft_strnequ(cmd, "ls", 2)) cmd_ls(sock); else if (ft_strnequ(cmd, "cd", 2)) cmd_cd(sock); else if (ft_strnequ(cmd, "get ", 4)) cmd_get(sock, cmd); else if (ft_strnequ(cmd, "put ", 4)) cmd_put(sock, cmd); else cmd_unknow(cmd); return (0); }
// 运行客户端 void run(char* ip, char* pt) { int sockfd = connectToHost(ip, pt); if (getReplyCode(sockfd) != SERVICE_READY) errorReport("Service Connect Error!"); while (userLogin(sockfd) != 0) // 调用登录函数userLogin printf("Please try again.\n"); int isQuit = 0; char buf[BUF_SIZE]; while (!isQuit) { printf("[Client command] "); fgets(buf, sizeof(buf), stdin); switch (cmdToNum(buf)) { case GET: cmd_get(sockfd, buf); break; case PUT: cmd_put(sockfd, buf); break; case PWD: cmd_pwd(sockfd); break; case DIR: cmd_dir(sockfd); break; case CD: cmd_cd(sockfd, buf); break; case HELP: cmd_help(); break; case QUIT: cmd_quit(sockfd); isQuit = 1; break; default: cmd_help(); break; } } close(sockfd); }
/* Accepts messages and routes them to their respective registered processes */ void sysproc_command_decoder(void) { msg_envelope_t *msg; int message_target; int source; while (1) { msg = receive_message(&source); switch (msg->header.type) { case CMD_REGISTER_MSG: { cmd_put(msg->data, source); free_message(msg); } break; case CMD_NOTIFY_MSG: { cmd_parse(msg->data); message_target = cmd_get(msg->data); send_message(message_target, msg); } break; } } }
int main (int argc, char *argv[]) { flux_t h; int ch; char *cmd; log_init ("flux-kvs"); while ((ch = getopt_long (argc, argv, OPTIONS, longopts, NULL)) != -1) { switch (ch) { case 'h': /* --help */ usage (); break; default: usage (); break; } } if (optind == argc) usage (); cmd = argv[optind++]; if (!(h = flux_open (NULL, 0))) err_exit ("flux_open"); if (!strcmp (cmd, "get")) cmd_get (h, argc - optind, argv + optind); else if (!strcmp (cmd, "type")) cmd_type (h, argc - optind, argv + optind); else if (!strcmp (cmd, "put")) cmd_put (h, argc - optind, argv + optind); else if (!strcmp (cmd, "unlink")) cmd_unlink (h, argc - optind, argv + optind); else if (!strcmp (cmd, "link")) cmd_link (h, argc - optind, argv + optind); else if (!strcmp (cmd, "readlink")) cmd_readlink (h, argc - optind, argv + optind); else if (!strcmp (cmd, "mkdir")) cmd_mkdir (h, argc - optind, argv + optind); else if (!strcmp (cmd, "exists")) cmd_exists (h, argc - optind, argv + optind); else if (!strcmp (cmd, "version")) cmd_version (h, argc - optind, argv + optind); else if (!strcmp (cmd, "wait")) cmd_wait (h, argc - optind, argv + optind); else if (!strcmp (cmd, "watch")) cmd_watch (h, argc - optind, argv + optind); else if (!strcmp (cmd, "watch-dir")) cmd_watch_dir (h, argc - optind, argv + optind); else if (!strcmp (cmd, "dropcache")) cmd_dropcache (h, argc - optind, argv + optind); else if (!strcmp (cmd, "dropcache-all")) cmd_dropcache_all (h, argc - optind, argv + optind); else if (!strcmp (cmd, "copy-tokvs")) cmd_copy_tokvs (h, argc - optind, argv + optind); else if (!strcmp (cmd, "copy-fromkvs")) cmd_copy_fromkvs (h, argc - optind, argv + optind); else if (!strcmp (cmd, "dir")) cmd_dir (h, argc - optind, argv + optind); else if (!strcmp (cmd, "dirsize")) cmd_dirsize (h, argc - optind, argv + optind); else usage (); flux_close (h); log_fini (); return 0; }
/** * Does a print and then a newline. */ void cmd_print(char *args) { cmd_put(args); if (! error) { lcd_put_newline(); } }
void cli_loop(void) { while (1) { curchar = getline(">"); printf("\n"); /* Process medium changes before executing the command */ if (disk_state != DISK_OK && disk_state != DISK_REMOVED) { FRESULT res; printf("Medium changed... "); res = f_mount(0,&fatfs); if (res != FR_OK) { printf("Failed to mount new medium, result %d\n",res); } else { printf("Ok\n"); } } /* Remove whitespace */ while (*curchar == ' ') curchar++; while (strlen(curchar) > 0 && curchar[strlen(curchar)-1] == ' ') curchar[strlen(curchar)-1] = 0; /* Ignore empty lines */ if (strlen(curchar) == 0) continue; /* Parse command */ int8_t command = parse_wordlist(command_words); if (command < 0) continue; FRESULT res; switch (command) { case CMD_CD: #if _FS_RPATH if (strlen(curchar) == 0) { f_getcwd((TCHAR*)file_lfn, 255); printf("%s\n",file_lfn); break; } res = f_chdir((const TCHAR *)curchar); if (res != FR_OK) { printf("chdir %s failed with result %d\n",curchar,res); } else { printf("Ok.\n"); } #else printf("cd not supported.\n"); res; #endif break; case CMD_RESET: cmd_reset(); break; case CMD_SRESET: cmd_sreset(); break; case CMD_DIR: case CMD_LS: cmd_show_directory(); break; case CMD_RESUME: return; break; case CMD_LOADROM: cmd_loadrom(); break; case CMD_LOADRAW: cmd_loadraw(); break; case CMD_SAVERAW: cmd_saveraw(); break; case CMD_RM: cmd_rm(); break; case CMD_D4: cmd_d4(); break; case CMD_VMODE: cmd_vmode(); break; case CMD_PUT: cmd_put(); break; case CMD_MAPPER: cmd_mapper(); break; case CMD_SETTIME: cmd_settime(); break; case CMD_TIME: cmd_time(); break; case CMD_TEST: testbattery(); break; case CMD_SETFEATURE: cmd_setfeature(); break; case CMD_HEXDUMP: cmd_hexdump(); break; case CMD_W8: cmd_w8(); break; case CMD_W16: cmd_w16(); break; } } }