Funções usadas para obter IDs
Dois tipos de IDs estão presentes aqui. Um é o ID atual do processo PID. Enquanto o outro é o ID do processo pai PPID. Ambas as funções são funções internas que são definidas na biblioteca. Ao executar o código sem usar esta biblioteca, pode causar um erro e parar de executar.
função getpid () em c
Quando algum processo é formado e está em execução, um ID exclusivo é atribuído a ele. Este é o ID do processo. Esta função ajuda a retornar o ID do processo que é chamado atualmente.
função getppid () em c
Este ID é útil para retornar o processo do processo/função pai.
Exemplo 1
Para entender o exemplo do PID no processo no idioma C. Você precisa de duas ferramentas: qualquer editor de texto e o terminal Linux, no qual você deve executar os comandos. Crie um arquivo em qualquer editor de texto. Criamos um nome de arquivo Code1.c como o código é escrito em C linguagem, portanto deve ser salvo com o .c extensão.
Adicionamos uma única biblioteca. Então aqui inicia o programa principal. No programa principal, chamamos a função interna getpid (); Para buscar o ID do processo atual. E uma variável é introduzida e atribuída. Para que o valor da função pid () seja armazenado nessa variável, então levaremos a impressão do valor usando essa variável.
Agora queremos executar o conteúdo deste arquivo no terminal Linux. O pré -requisito do código deve ser compilado primeiro e depois executar. Para compilação, o GCC é usado. Se o seu sistema não possui GCC, você precisará instalá -lo primeiro usando o comando sudo.
Agora compile o código escrito. Isso pode ser realizado usando o seguinte comando anexado.
$ Gcc -o code1 code1.cConsiderando que -o é usado para abrir o arquivo salvo no comando. Depois, -o, escrevemos o nome do arquivo.
Após a compilação, execute o comando.
$ ./code1A imagem acima mostra o ID do processo da função.
Exemplo 2
No exemplo anterior, fazemos uso do PID. Mas neste exemplo, tanto o PID quanto o PPID são usados. O código -fonte para esta função é quase o mesmo que o anterior. Só há outra adição de um id.
Considere um arquivo que contém duas variáveis no programa principal atribuído pelos IDs do processo. Um é do processo atual, e o outro é do processo pai. Então, semelhante ao primeiro exemplo, imprima os dois IDs através de suas variáveis.
Int pid_t = getpid ();Esses dois são as principais funções de todo o código. Agora, após a criação de arquivos, o próximo passo é compilar e executar o arquivo. Compilar usando o GCC no comando. Após a compilação, depois execute -o no terminal do Ubuntu.
$ Gcc -o code1 code1.cA saída mostra que o ID do processo é exibido primeiro e, em seguida, o ID do processo pai é exibido.
Exemplo 3
Todos os processos são executados e executados de maneira paralela. Os pais e os processos da criança executam todas as linhas restantes coletivamente. Ambos dão resultados em um momento. Mas usando um garfo no código C, se esta função retornar um valor menor que 0, significa que a chamada de função é encerrada.
Considere um novo arquivo com duas bibliotecas no respectivo cabeçalho. Aqui é usada uma condição na qual utilizamos a declaração "if-else". No programa principal, afirma -se que, se o valor do garfo estiver em valor, ele exibirá uma mensagem de que o ID do processo falhará e não será obtido. Se a situação for falsa, o compilador passará para a parte da condição. Nesta parte, o ID do processo é obtido, então exibiremos esse ID do processo e exibiremos uma mensagem de que o ID do processo é obtido. Aqui vamos citar a declaração if-else do código-fonte.
Agora novamente, compile o código e depois execute -o.
./code2A saída mostra que a parte mais foi executada e imprimirá o ID do processo e depois exibirá uma mensagem PID.
Exemplo 4
Este é outro exemplo de explicar o mesmo conceito. Função de garfo () retorna dois valores diferentes. No caso de um processo infantil, o valor é 0, que deve ser devolvido. Ao mesmo tempo, o valor no caso do processo pai é o processo de processo do novo filho.
Neste exemplo, a mesma condição if_else é usada. Mas aqui, duas condições são aplicadas. Comparando o PID menor que zero e o outro é igual a zero. Se o PID for menor que zero, ele mostrará uma mensagem de erro. Considerando que, se o PID é igual a zero, significa que é um processo infantil e a parte também mostrará que, se o PID for maior que zero, é um processo pai.
Agora compilar e executar o código.
$ gcc -o code3 code3.cA partir da saída, podemos ver que a parte mais impressa significa que o ID do processo é maior que 0.
Exemplo 5
Tudo bem, este é o último exemplo em que tentamos resumir todos os códigos descritos acima para explicar o funcionamento desta função. Também podemos usar loops com as funções Fork () para usar as funções getPid (). Podemos usar loops para criar muitos processos infantis. Aqui temos que usar o valor de 3 no loop.
Novamente, temos que usar a declaração condicional no código. O loop for começa a partir de um e itera até os 3rd vez.
Agora salve o arquivo e execute -o. Existe outro método simples para compilar e executar o código apenas em um único comando. Aquilo é.
$ Gcc codes5.C -O S & ./code5Agora movendo -se em direção à saída do código. O ID do processo pai é idêntico em todos os processos infantis. Isso significa que todos esses processos pertencem a um dos pais. Esses processos são executados um depois, o outro, pois o loop é limitado a 3. Apenas 3 iterações serão feitas.
Conclusão
Este artigo contém o conhecimento básico e o funcionamento de uma função getpid () nos comandos Linux. O ID exclusivo é atribuído a cada processo através desta função.