Qual é a diferença entre pausar e aguardar chamada do sistema no linux?

pause () e wait () são completamente diferentes.

pause () simplesmente suspende o processo para que não seja mais executado. Poderia permanecer assim para sempre. A intenção é que isso acorde novamente ao receber um sinal (), pré-arranjado ou de algum outro processo. Costumava haver uma chamada do sistema sleep () que fazia com que um processo fosse interrompido por N segundos. Foi substituído por uma combinação de alarm () (para enviar um sinal após N segundos) e pausa ().

wait () não está relacionado à pausa (). É o método que um processo pai aprende sobre o término de seus processos filhos. Significa esperar até que um dos meus filhos saia e me diga qual deles…

Esperar():

Arquivo de cabeçalho: #include

Protótipo: espera pid_t (int * stat_loc);

A chamada do sistema de espera faz com que um processo pai seja pausado até que um de seus processos filhos seja parado. A chamada retorna o PID do processo filho. Normalmente, este será um processo filho que foi encerrado. As informações de status permitem que o processo pai determine o status de saída do processo filho, ou seja, o valor retornado do principal ou passado para sair. Se stat_loc não for um ponteiro nulo, as informações de status serão gravadas no local para o qual apontam.

Pausa():

Cabeçalho: #include

Protótipo: int pause (vazio);

pausar a chamada do sistema, simplesmente faz com que o programa suspenda a execução até que um sinal ocorra. Quando recebe um sinal, qualquer manipulador estabelecido é executado e a execução continua normalmente.

em caso de erro, retorna -1 (se o próximo sinal recebido não fizer com que o programa termine) com o erro definido como EINTR quando interrompido por um sinal.

Para mais informações: leia as páginas de manual