int main(int argc, char *argv[]) { parse_arguments_and_flags(argc, argv); uint16_t port = get_port_from_args(); struct in_addr serverIP = get_IP_from_args(); handle_ctrl_c(); printf("started with IP: %s, port: %d... \n", args[1], port); create_socket(); connect_to_server(port, serverIP); printf("Connected...\nEnter messages, max size: %d, ctrl + d to quit, *QUIT* to kill server \n", BUFSIZ); int exitv = 0; do { char buffer[BUFSIZ]; get_input_from_user(buffer); exitv = send_message_to_server(buffer); if (0 != exitv) { //get return from the server and print it char recvbuffer[BUFSIZ]; recv(sock, recvbuffer, BUFSIZ, 0); printf("server sent back: \"%s\"\n", recvbuffer); } } while (0 != exitv); close(sock); exit(EXIT_SUCCESS); }
static void is_special_action(char *key) { if (key[0] == 27 && key[1] == 91 && key[2] == 72) go_to_start(); else if (key[0] == 27 && key[1] == 91 && key[2] == 70) go_to_end(); else if (key[0] == 21 && key[1] == 0 && key[2] == 0) cut_entire_line(); else if (key[0] == 11 && key[1] == 0 && key[2] == 0) cut_end_of_line(); else if (key[0] == 16 && key[2] == 0 && key[2] == 0) paste(); else if (key[0] == 12 && key[1] == 0 && key[2] == 0) clear(); else if (key[0] == 3 && key[1] == 0 && key[2] == 0) handle_ctrl_c(); else if (key[0] == 2 && key[1] == 0 && key[2] == 0) move_back_word(); else if (key[0] == 14 && key[1] == 0 && key[2] == 0) move_next_word(); else if (key[0] == 27 && key[1] == 91 && key[2] == 53) go_up(); else if (key[0] == 27 && key[1] == 91 && key[2] == 54) go_down(); }
int main(int argc, char *argv[]) { handle_ctrl_c(); parse_arguments_and_flags(argc, argv); parseURL(); printf("started with host: %s, page: %s ... \n", host,page); create_socket(); connect_to_server(); send_request(); handle_response(); close(sock); exit(EXIT_SUCCESS); }
void open_console() { handle_ctrl_c(); }
void factor_vm::unix_init_signals() { init_signal_pipe(this); signal_callstack_seg = new segment(callstack_size, false); stack_t signal_callstack; signal_callstack.ss_sp = (char*)signal_callstack_seg->start; signal_callstack.ss_size = signal_callstack_seg->size; signal_callstack.ss_flags = 0; if (sigaltstack(&signal_callstack, (stack_t*)NULL) < 0) fatal_error("sigaltstack() failed", 0); { struct sigaction memory_sigaction; init_sigaction_with_handler(&memory_sigaction, memory_signal_handler); sigaction_safe(SIGBUS, &memory_sigaction, NULL); sigaction_safe(SIGSEGV, &memory_sigaction, NULL); sigaction_safe(SIGTRAP, &memory_sigaction, NULL); } { struct sigaction fpe_sigaction; init_sigaction_with_handler(&fpe_sigaction, fpe_signal_handler); sigaction_safe(SIGFPE, &fpe_sigaction, NULL); } { struct sigaction synchronous_sigaction; init_sigaction_with_handler(&synchronous_sigaction, synchronous_signal_handler); sigaction_safe(SIGILL, &synchronous_sigaction, NULL); sigaction_safe(SIGABRT, &synchronous_sigaction, NULL); } { struct sigaction enqueue_sigaction; init_sigaction_with_handler(&enqueue_sigaction, enqueue_signal_handler); sigaction_safe(SIGWINCH, &enqueue_sigaction, NULL); sigaction_safe(SIGUSR1, &enqueue_sigaction, NULL); sigaction_safe(SIGCONT, &enqueue_sigaction, NULL); sigaction_safe(SIGURG, &enqueue_sigaction, NULL); sigaction_safe(SIGIO, &enqueue_sigaction, NULL); sigaction_safe(SIGPROF, &enqueue_sigaction, NULL); sigaction_safe(SIGVTALRM, &enqueue_sigaction, NULL); #ifdef SIGINFO sigaction_safe(SIGINFO, &enqueue_sigaction, NULL); #endif } handle_ctrl_c(); { struct sigaction sample_sigaction; init_sigaction_with_handler(&sample_sigaction, sample_signal_handler); sigaction_safe(SIGALRM, &sample_sigaction, NULL); } /* We don't use SA_IGN here because then the ignore action is inherited by subprocesses, which we don't want. There is a unit test in io.launcher.unix for this. */ { struct sigaction ignore_sigaction; init_sigaction_with_handler(&ignore_sigaction, ignore_signal_handler); sigaction_safe(SIGPIPE, &ignore_sigaction, NULL); /* We send SIGUSR2 to the stdin_loop thread to interrupt it on FEP */ sigaction_safe(SIGUSR2, &ignore_sigaction, NULL); } }