paulo1205
(usa Ubuntu)
Enviado em 10/10/2014 - 18:21h
É uma solução, mas você precisa saber que isso tem alguns problemas. A saber (e possivelmente a lista abaixo não esgote todas as possíveis ressalvas):
1) Depende de um comando externo, que tem de estar disponível para o sistema operacional executar (o que pode nem sempre ser verdadeiro).
2) Depende, no mundo UNIX (incluive Linux), do valor da variável de ambiente
PATH.
3) É custoso. No mundo UNIX (e também é semelhante no Windows), a função
system() cria um processo novo, e executa nesse segundo processo uma instância do shell, para que o comando passado à função seja por ele interpretado. O shell, por sua vez, após interpretar o comando recebido, pode criar (e, no caso do comando
clear, efetivamente cria) outro processo novo (o terceiro) e executa (ou, melhor, tenta executar, podendo até mesmo falhar) dentro dele o programa solicitado. Quando a execução do terceiro processo termina, o segundo processo trata sua finalização, e também termina. O processo original permaneceu parado esse tempo todo, pois a função
system() fica aguardando o término da execução do segundo processo, para poder, finalmente, tratar sua finalização, e devolver ao programa que a chamou um código que indica se a execução foi bem-sucedida.
4) Idealmente, você deveria capturar o valor retornado pela função
system() e tratá-lo.
5) O comando
clear só existe no mundo UNIX. No Windows, ele tem outro nome.