_popen, _wpopen
Создает канал и поиска.
Важно |
---|
Этот API нельзя использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /ZW. |
FILE *_popen( const char *command, const char *mode ); FILE *_wpopen( const wchar_t *command, const wchar_t *mode );
Параметры
command
Команда быть выполнять.mode
Режим возвращаемого потока.
Возвращаемое значение
Возвращает поток, связанный с одним конца создаваемого канала.Другой конец канала связан с входными данными или стандартным выводом порожданной стандартные команды.Функции возвращают NULL в ошибке.Если ошибка недопустимый параметр, например, если команда или режим указатель, или режим, не является допустимым режимом errno установлено значение EINVAL.В разделе комментария для допустимых режимов.
Дополнительные сведения об этих и других кодах ошибок см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
Функция _popen создает канал и асинхронно выполняет порожданное копию процессора команды с помощью команды указанной строки.Режим символьной строки требуемые определяет тип доступа к следующим образом.
"r"
Вызывающий процесс может считывать стандартный вывод порожданной команды с помощью возвращает поток."w"
Вызывающий процесс может записывать для ввода порожданной команды с помощью стандартного возвращает поток."b"
Открыть в бинарном режиме."t"
Открыть в режиме текста.Примечание Если используется в программе Windows, функция _popen возвращает недопустимый указатель, файла, заставит программу перестать отвечать неопределенно._popen правильно работает в консольном приложении.Для создания Windows-приложение, которое перенаправляет ввод и вывод см. в разделе Создание дочерний процесс с входными данными и перенаправленные выводом в Windows SDK.
версия _wpopen является _popen; аргумент пути к _wpopen характерная черта.В остальных случаях поведение _wpopen и _popen идентично.
Универсальное текстовое сопоставление функций
Подпрограмма TCHAR.H |
Не указаны _UNICODE и _MBCS |
определенные _MBCS |
Определение _UNICODE |
---|---|---|---|
_tpopen |
_popen |
_popen |
_wpopen |
Требования
Функция |
Требуемый заголовок |
---|---|
_popen |
<stdio.h> |
_wpopen |
<stdio.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Библиотеки
Все версии Библиотек времени выполнения C.
Пример
// crt_popen.c
/* This program uses _popen and _pclose to receive a
* stream of text from a system process.
*/
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char psBuffer[128];
FILE *pPipe;
/* Run DIR so that it writes its output to a pipe. Open this
* pipe with read text attribute so that we can read it
* like a text file.
*/
if( (pPipe = _popen( "dir *.c /on /p", "rt" )) == NULL )
exit( 1 );
/* Read pipe until end of file, or an error occurs. */
while(fgets(psBuffer, 128, pPipe))
{
printf(psBuffer);
}
/* Close pipe and print return value of pPipe. */
if (feof( pPipe))
{
printf( "\nProcess returned %d\n", _pclose( pPipe ) );
}
else
{
printf( "Error: Failed to read the pipe to the end.\n");
}
}
Пример результатов выполнения
Этот результат высказывать существует только один файл в текущем каталоге с расширением имени файла C-.
Volume in drive C is CDRIVE
Volume Serial Number is 0E17-1702
Directory of D:\proj\console\test1
07/17/98 07:26p 780 popen.c
1 File(s) 780 bytes
86,597,632 bytes free
Process returned 0
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.