как получить доступ к выводу stdout? или как перенаправить stdout в буфер?
я помню когда только начинал изучать си, в какой то книге было сказано вроде что-то о перенаправлении ввода вывода. я хочу получить доступ так, чтобы взять из стандартного вывода данные и отобразить наверное в другой вывод, но на консоль. не знаю, возможно ли это?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <string.h>
int fd;
static void *handle_cb ( void *data ) {
int byte = 0;
char ans[128];
char line[512];
for ( ; byte < 256; byte++ ) {
read ( fd, ans, 128 );
char *s = strchr ( ans, '\n' );
if ( s ) *s = 0;
snprintf ( line, 512, "%s %x", ans, byte );
printf ( "%s\n", line );
}
}
int main ( int argc, char **argv ) {
char buf[255];
fd = dup ( STDOUT_FILENO );
int byte = 0;
pthread_t t1;
pthread_create ( &t1, NULL, handle_cb, NULL );
for ( ; byte < 256; byte++ ) {
snprintf ( buf, 255, "rasm2 -a x86 -d '%x'", byte );
system ( buf );
}
pthread_join ( t1, NULL );
}