_popen, _wpopen
Cria um pipe e executar um comando.
Importante |
---|
Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW. |
FILE *_popen( const char *command, const char *mode ); FILE *_wpopen( const wchar_t *command, const wchar_t *mode );
Parâmetros
comando
Comando ser executado.para
Modo de fluxo retornado.
Valor de retorno
Retorna um fluxo associado com a fim de pipe criado.Outra extremidade de pipe está associada com a saída padrão de entrada ou padrão de comando desovado.Funções de retorno NULO em um erro.Se o erro é um parâmetro inválido, como se o comando ou modo são um ponteiro zero, ou o modo não é uma forma válido, errno é definido como EINVAL.Consulte a seção comentários para modos válidos.
Para obter informações sobre esses e outros códigos de erro, consulte _doserrno, errno, _sys_errlist, e _sys_nerr.
Comentários
A função de _popen cria um pipe e executa de forma assíncrona uma cópia desovada do processador de comando com o comandode cadeia de caracteres especificado.O modo de cadeia de caracteres especifica o tipo de acesso aplicativo, como segue.
"r"
O processo de chamada pode ler a saída padrão de comando desovado usando o fluxo retornado."w"
O processo de chamada pode escrever a entrada padrão de comando desovado que usa o fluxo retornado."b"
Abrir no modo binário."t"
Abrir no modo de texto.Observação Se usado em um programa do Windows, a função de _popen retorna um ponteiro de arquivo válido que faz com que o programa pára de responder indefinidamente._popen funciona corretamente em um aplicativo de console.Para criar um aplicativo do Windows que emite entrada e saída, consulte Criando um processo filho com entrada e saída redirecionadas em Windows SDK.
_wpopen é uma versão de largo- caractere de _popen; o argumento de caminho a _wpopen é uma cadeia de caracteres de largo- caractere._wpopen e _popen se comportam de forma idêntica.
Mapeamentos da rotina de Genérico- texto
Rotina de Tchar.h |
_UNICODE e não definidos _MBCS |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tpopen |
_popen |
_popen |
_wpopen |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_popen |
<stdio.h> |
_wpopen |
<stdio.h> ou <wchar.h> |
Para mais informações, consulte Compatibilidade de compatibilidade na introdução.
Bibliotecas
Todas as versões de Bibliotecas em tempo de execução de C.
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");
}
}
A saída de exemplo
Essa saída presumem que há apenas um arquivo no diretório atual com extensão de nome de arquivo de c#. A.
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
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.