int main(int argc,char *argv[]) { int pid; int res; char option[100]; if(argc <= 1 || argc > 2){ print_help(); return 1; } strcpy(option,argv[1]); if(!( (0 == strcmp(option,"-quit")) || (0 == strcmp(option,"-term")) )){ print_help(); return 1; } pid = read_pid_from_file(); if(0 == strcmp(option,"-quit")){ res = kill(pid,SIGQUIT); if( -1 == res ){ printf("send QUIT sig error \n"); return 0; } }else{ res = kill(pid,SIGTERM); if( -1 == res ){ printf("send TERM sig error \n"); return 0; } } return 1; }
co_rc_t console_window_t::parse_args(int argc, char** argv) { bool_t pidfile_specified; co_pathname_t pidfile; co_command_line_params_t cmdline; co_rc_t rc; /* Default settings */ rc = co_cmdline_params_alloc(&argv[1], argc-1, &cmdline); if (!CO_OK(rc)) { co_terminal_print("console: error parsing arguments\n"); goto out_clean; } rc = co_cmdline_params_one_arugment_int_parameter( cmdline, "-a", NULL, &start_parameters.attach_id); if (!CO_OK(rc)) { syntax(); goto out; } rc = co_cmdline_params_one_arugment_parameter( cmdline, "-p", &pidfile_specified, pidfile, sizeof(pidfile)); if (!CO_OK(rc)) { syntax(); goto out; } if (pidfile_specified) { rc = read_pid_from_file(pidfile, &start_parameters.attach_id); if (!CO_OK(rc)) { co_terminal_print("error on reading PID from file '%s'\n", pidfile); return CO_RC(ERROR); } } rc = co_cmdline_params_check_for_no_unparsed_parameters(cmdline, PTRUE); if (!CO_OK(rc)) { syntax(); goto out; } out: co_cmdline_params_free(cmdline); out_clean: return rc; }
co_rc_t console_window_t::parse_args(int argc, char **argv) { char** param_scan = argv; /* Parse command line */ while (argc > 0) { const char* option; if (strcmp(*param_scan, (option = "-a")) == 0) { param_scan++; argc--; if (argc <= 0) { co_terminal_print( "Parameter of command line option %s not specified\n", option); return CO_RC(ERROR); } start_parameters.attach_id = atoi(*param_scan); } else if (strcmp(*param_scan, (option = "-p")) == 0) { co_rc_t rc; param_scan++; argc--; if (argc <= 0) { co_terminal_print( "Parameter of command line option %s not specified\n", option); return CO_RC(ERROR); } rc = read_pid_from_file(*param_scan, &start_parameters.attach_id); if (!CO_OK(rc)) { co_terminal_print( "error on reading PID from file '%s'\n", *param_scan); return CO_RC(ERROR); } } param_scan++; argc--; } return CO_RC(OK); }