Quando um processo desenvolve um processo infantil, é ocasionalmente importante para o processo dos pais esperar até que a criança o concluísse antes de continuar. É exatamente isso que a função do sistema wait () realiza.
Esperar faz com que os pais esperem a criança alterar seu estado. A alteração do status pode ser devida ao fato de o processo infantil ser encerrado, interrompido por um sinal ou retomado por um sinal. Em algumas circunstâncias, quando um processo infantil desiste ou comutora, o processo pai deve ser notificado sobre a alteração da criança em estado ou estado de rescisão. Nesse caso, o processo pai usa funções como Wait () para perguntar sobre a atualização no estado do processo infantil.
Espera () suspende o processo de chamador até que o sistema receba informações sobre o status da criança final. Espera () retorna instantaneamente se o sistema já tiver informações de status em um processo infantil acabado quando invocado. Se o processo do chamador receber o sinal com ação para executar um manipulador de sinal ou encerrar o processo, espera () também será encerrado.
A função do sistema waitpid () faz uma pausa no processo atual até que o argumento PID especifique uma criança com um estado alterado. Waitpid () aguarda apenas as crianças terminadas por padrão; No entanto, esse comportamento pode ser alterado. A chamada do sistema Wait () aceita apenas um parâmetro, que mantém as informações e atualizações do processo. Se você não se importa com o status de saída do processo infantil e só se preocupa em fazer com que os pais esperem a criança, use nulo como o valor. Neste guia, elaboraremos um exemplo para o entendimento do sistema Wait () Chamada em programação C C.
Pré-requisitos
Exemplo para elaborar a chamada do sistema de espera em C
Abra o terminal e verifique se o compilador GCC está instalado ou não. Se não estiver instalado, utilizou o comando anexado:
$ Sudo apt install gccNo Ubuntu 20.04 Sistema, você deve primeiro criar um novo arquivo com o .c extensão. Para conseguir isso, vá para o seu diretório doméstico e gerar um novo arquivo vazio intitulado "Wait1". Você também pode usar o comando nano no seu terminal para fazê -lo.
$ nano wait1.cDepois de criar o “Wait1.Arquivo C ”, ele abrirá em um editor de texto GNU no seu sistema Linux e colará o código abaixo nele. Depois disso, salve e saia do programa.
O arquivo de cabeçalho C/C ++ é o ponto de entrada do seu código para as declarações constantes, do tipo e função da API da Posix OS. Vários tipos derivados fundamentais estão incluídos no cabeçalho e devem ser utilizados sempre que possível. é um arquivo de cabeçalho que compreende as informações necessárias para incluir rotinas de entrada/saída em nosso programa. As constantes simbólicas a serem usadas com waitpid são definidas no . Também usamos a chamada do sistema de garfo no programa.
A chamada do sistema Fork () é usada para iniciar um novo processo, conhecido como processo infantil, que é executado em paralelo com o processo de chamada Fork () que é o processo pai. Ambos os processos implementarão a próxima instrução após a chamada do sistema Fork () quando um novo processo infantil for estabelecido. Um processo infantil compartilha o mesmo PC "Counter", registros da CPU e arquivos abertos como seus pais. Retorna um valor inteiro sem parâmetros. O processo começa com a impressão de “antes do garfo.”Então, usando a chamada do sistema Fork (), um processo infantil é criado.
A chamada do sistema wait () é introduzida na seção pai do código. Como resultado, o processo pai é suspenso assim que o processador começa a executar o pai porque a declaração inicial está esperando (nulo). Como resultado, o processo infantil é executado em primeiro lugar, e todas as linhas de saída pertencem ao processo infantil. A chamada do sistema nulo em espera () indica que não saberemos sobre o estado da transição do processo da criança. Agora, novamente, comece seu terminal. No Ubuntu 20.04, use a instrução GCC abaixo, precedida pelo nome do arquivo.
$ gcc wait1.cAgora execute o código com a ajuda do seguinte comando afixado no terminal.
$ ./a.foraComo já está explicado, os pais e os filhos dos processos serão exibidos com a ajuda de uma chamada do sistema de espera.
Conclusão
Este artigo demonstrou o uso do sistema Wait () Chamada na programação C. Implementamos um dos exemplos para mostrar a implementação bem -sucedida do sistema Wait (). Todo o código também é descrito em detalhes para a compreensão do usuário. Espero que você implemente e use facilmente a chamada do sistema wait () sempre que for necessário.