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 NULL
for , 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