В Unix системах инициализируется функцией popen() и закрывается - pclose(). На платформе Win32 - _popen(), _pclose().
Если рассмотреть вариант для Win32 систем, то полный синтаксис выглядит следующим образом (ссылка на msdn).
FILE *_popen( const char *command, const char *mode );
*command - собственно, команда на выполнение, например "C://script.exe";
*mode - режим получаемого потока (параллельного процесса). Четыре режима (в
упрощенном виде): r - режим чтения, w - режим записи, b - бинарный режим,
t - текстовый режим.
int _pclose(
FILE *stream
);
Далее приведен пример работы с именованным каналом. #include <stdio.h> #include <stdlib.h> int main(void) { char Buffer[128]; FILE *pPipe; /* Run script.exe so that it writes its output to a pipe. Open this * pipe with read binary attribute. */ if((pPipe = _popen("C://script.exe", "rb")) == NULL) exit(1); /* Read pipe until end of file. */ while(!feof(pPipe)) { if(fgets(Buffer, 128, pPipe) != NULL) printf(Buffer); } /* Close pipe and print return value of pPipe. */ printf("\nProcess returned %d\n", _pclose(pPipe)); }
Всем удачи!