Partilhar via


_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.

Consulte também

Referência

Processo e ambiente de controle

_pclose

_pipe