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;
        }
}
示例#2
0
文件: cgdb.c 项目: i4fumi/cgdb
/* 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;
}