static void tty_input(void) { char buf[MAXLINE]; size_t size; size_t i; if( (size = tgdb_recv_inferior_data(tgdb, buf, MAXLINE)) == -1){ logger_write_pos ( logger, __FILE__, __LINE__, "file descriptor closed"); return; } /* end if */ for(i = 0; i < size; ++i) if(write(STDOUT_FILENO, &(buf[i]), 1) != 1 ){ logger_write_pos ( logger, __FILE__, __LINE__, "could not write byte"); return; } }
/* child_input: Recieves data from the child application: * * Returns: -1 on error, 0 on success */ static int child_input() { char *buf = malloc(GDB_MAXBUF + 1); int size; /* Read from GDB */ size = tgdb_recv_inferior_data(tgdb, buf, GDB_MAXBUF); if (size == -1) { logger_write_pos(logger, __FILE__, __LINE__, "tgdb_recv_inferior_data error "); free(buf); buf = NULL; return -1; } buf[size] = 0; /* Display CHILD output */ if_tty_print(buf); free(buf); buf = NULL; return 0; }