Как получить доступ к выводу консоли Perl внутри программы C? - PullRequest
0 голосов
/ 24 ноября 2011

Я написал программу на C, которая встраивает интерпретатор perl.

Скрипт Perl вызывается внутри программы C.Сценарий Perl печатает вывод на консоль.

Как мне получить к нему доступ в моей программе на C?

char* perl_script = "D:\\Perl Scripts\\Exif\\Image-ExifTool-8\.69\\exiftool ";
char* file = "D:\\pic2\.jpg";
//char* command_line[] = {"", "-e", "print \"Hello from C!\\n\";"};
char* command_line[] = {"", perl_script, file};
my_perl = perl_alloc();
perl_construct(my_perl);
perl_parse(my_perl, xs_init, 3, command_line, (char **)NULL);
perl_run(my_perl);

Я не использую команду внутри C. Я использую perl_run().Как я могу получить доступ к выводу консоли в этом случае?

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Если он работает в GNU / Linux, вы можете использовать popen() и затем читать его как обычный канал http://linux.die.net/man/3/popen

1 голос
/ 24 ноября 2011

Если это единственная причина, по которой вы встраиваете perl в вашу C-программу, возможно, вам лучше не использовать ее и использовать библиотеку C libexif .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...