system, _wsystem

Executa um comando.

Importante

Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.

Sintaxe

int system(
   const char *command
);
int _wsystem(
   const wchar_t *command
);

Parâmetros

command
O comando a ser executado.

Valor retornado

Se command for NULL e o interpretador de comandos for encontrado, retornará um valor diferente de zero. Se o interpretador de comandos não for encontrado, retornará 0 e definirá errno como ENOENT. Se command não NULLfor , system retornará o valor retornado pelo interpretador de comandos. Retornará o valor 0 somente se o interpretador de comandos retornar o valor 0. Um valor retornado -1 indica um erro e errno é definido com um dos seguintes valores:

Valor Descrição
E2BIG A lista de argumentos (que depende do sistema) é muito grande.
ENOENT O interpretador de comandos não pode ser encontrado.
ENOEXEC O arquivo do interpretador de comandos não pode ser executado porque o formato não é válido.
ENOMEM Não há memória suficiente disponível para executar o comando; ou a memória disponível foi corrompida; ou existe um bloco inválido, o que indica que o processo de chamada foi alocado incorretamente.

Para obter mais informações sobre códigos de retorno, confira errno, _doserrno, _sys_errlist e _sys_nerr.

Comentários

A função system passa command para o interpretador de comandos, que executa a cadeia de caracteres como um comando do sistema operacional. system usa as variáveis de ambiente COMSPEC e PATH para localizar o CMD.exe do arquivo do interpretador de comandos. Se command for NULL, a função apenas verificará se o interpretador de comandos existe.

É necessário liberar explicitamente, usando fflush ou _flushall, ou fechar qualquer fluxo antes de chamar system.

A função _wsystem é uma versão de caractere largo da função system; o argumento command para _wsystem é uma cadeia de caracteres larga. Caso contrário, essas funções se comportam de forma idêntica.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Mapeamentos de rotina de texto genérico

Rotina TCHAR.H _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_tsystem system system _wsystem

Requisitos

Rotina Cabeçalho necessário
system <process.h> ou <stdlib.h>
_wsystem <process.h> ou <stdlib.h> ou <wchar.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Esse exemplo usa system para usar TYPE em um arquivo de texto.

// crt_system.c

#include <process.h>

int main( void )
{
   system( "type crt_system.txt" );
}

Entrada: crt_system.txt

Line one.
Line two.

Saída

Line one.
Line two.

Confira também

Controle de processo e ambiente
_exec, _wexec funções
exit, _Exit, _exit
_flushall
_spawn, _wspawn funções