_popen, _wpopen
Cria um pipe e executa um comando.
FILE *_popen(
const char *command,
const char *mode
);
FILE *_wpopen(
const wchar_t *command,
const wchar_t *mode
);
Parâmetros
command
Comando a ser executado.mode
Modo de fluxo retornado.
Valor de retorno
Retorna um fluxo associado a uma participante do pipe criado.A Outros extremidade do pipe está associada com o comando gerado entrada ou saída padrão.As funções retornam NULO em um erro.Se o erro é um parâmetro inválido, sistema autônomo se comando or modo é um ponteiro nulo ou modo não é um modo válido, errno é definido sistema autônomo EINVAL. Consulte a seção de comentários para os modos válido.
Para obter informações sobre esses e outros códigos de erro, consulte _doserrno, errno, _sys_errlist e _sys_nerr.
Comentários
The _popen função cria um pipe e modo assíncrono executa uma cópia gerada do processador de comando com a seqüência de caracteres especificada comando.O caractere de seqüência de caracteres modo Especifica o tipo de acesso solicitado, da seguinte maneira.
"r"
O processo de chamada pode ler a saída padrão do comando gerado usando o fluxo retornado."w"
O processo de chamada pode gravar entrada padrão do comando gerado usando o fluxo retornado."b"
em aberto no modo binário."t"
em aberto no modo de texto.Observação: Se usado em um programa do Windows, o _popen função retorna um ponteiro de arquivo inválido faz com que o programa pare de responder indefinidamente. _popen funciona corretamente em um aplicativo de console. Para criar um aplicativos do Windows que redireciona a entrada e saída, consulte Criando um processo filho com redirecionado de entrada e saída in the Windows SDK.
_wpopen é uma versão de caractere largo da _popen; o caminho argumento _wpopen é uma seqüência de caracteres largos. _wpopen e _popen tenham comportamento idêntico caso contrário.
Mapeamentos de rotina de texto genérica
Rotina tchar.h |
_UNICODE e _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tpopen |
_popen |
_popen |
_wpopen |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_popen |
<stdio.h> |
_wpopen |
<stdio.h> ou <wchar.h> |
Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.
Bibliotecas
Todas as versões do C em time de execução bibliotecas.
Exemplo
// 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");
}
}
Saída de exemplo
Esta saída pressupõe que haja apenas um arquivo no diretório corrente com uma extensão .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
Equivalente do NET Framework
Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.