Как я могу открыть отдельный терминал для каждого потока, созданного в моем приложении? - PullRequest
1 голос
/ 02 сентября 2011

см. В основном у меня есть одно многопоточное приложение, в котором я хочу увидеть результат & printf и весь вывод каждого потока на другом терминале, так как я могу это сделать ??

Пример :

если в приложении ma создано два потока, то я хочу открыть два отдельных терминала для вывода каждого потока.

note: all i want to do in c language with my linux machine

1 Ответ

2 голосов
/ 02 сентября 2011

Вот пример, который печатает строку с другим tty:


#include <stdio.h>
#include <stdlib.h>

int
main( int argc, char ** argv )
{
    char *path = argc > 1 ? argv[ 1 ] : "/dev/ttys017";
    FILE *tty = fopen( path, "a" );
    if( tty == NULL ) {
        perror( path );
        exit( EXIT_FAILURE );
    }
    fputs( "a string\n", tty );
}

Каждый поток может открыть FILE * на терминале, указанном в командной строке.Если вы хотите создать терминалы, вы можете проверить документацию на openpty и т. Д. Чтобы получить имя конкретного терминала, просто запустите «tty» в оболочке на этом терминале.

...