static void trace_text(FILE *input, int output) { struct ctf_stream_pos pos; ssize_t len; char *line = NULL, *nl; size_t linesize; int ret; memset(&pos, 0, sizeof(pos)); ret = ctf_init_pos(&pos, NULL, output, O_RDWR); if (ret) { fprintf(stderr, "Error in ctf_init_pos\n"); return; } write_packet_header(&pos, s_uuid); write_packet_context(&pos); for (;;) { len = getline(&line, &linesize, input); if (len < 0) break; nl = strrchr(line, '\n'); if (nl) { *nl = '\0'; trace_string(line, &pos, nl - line + 1); } else { trace_string(line, &pos, strlen(line) + 1); } } ret = ctf_fini_pos(&pos); if (ret) { fprintf(stderr, "Error in ctf_fini_pos\n"); } }
BT_HIDDEN int bt_ctf_stream_set_fd(struct bt_ctf_stream *stream, int fd) { int ret = 0; if (stream->pos.fd != -1) { ret = -1; goto end; } ctf_init_pos(&stream->pos, NULL, fd, O_RDWR); stream->pos.fd = fd; end: return ret; }