Abra o aplicativo de console na área de pesquisa. Uma maneira alternativa rápida de abrir o console é via “Ctrl+Alt+T”.
Exemplo:
Crie um novo arquivo C na pasta doméstico do sistema Linux com a utilização do comando "Touch". Nomeamos este arquivo C como "SEMCTL.C ”. Você pode nomear como quiser. A consulta é a seguinte:
$ touch semctl.c
O editor do GNU Nano será usado para editar e abrir o arquivo. Então, a consulta declarada abaixo foi usada para abrir o “SEMCTL.Arquivo C ”.
$ nano semctl.c
Como mostrado na imagem abaixo de que o arquivo já foi aberto no editor. Escreva o mesmo código em seu arquivo para ver o funcionamento da chamada do sistema "SEMCTL ()". O arquivo de cabeçalho para entrada e semáforos foi incluído no início do arquivo C. O método principal foi declarado junto com outra função, "get_val ()". A partir do método principal, definimos uma variável "V" obtendo seu valor da função get_val. Este método foi chamado enquanto passou com dois argumentos nos parâmetros. Agora o controle foi dado à função get_val (). Esta função contém dois argumentos, e.g. SID como ID de semáforo e "Semnum" como número de semáforo. Os valores passados 1 e 4 serão salvos para esses argumentos.
O comando SEMCTL foi utilizado dentro da função para obter o conjunto de semáforo atual usando o ID de semáforo e o número de semáforo. A função getVal foi usada aqui para obter o valor atual do semáforo. Após a coleta de um valor de semáforo, ele foi devolvido ao método principal. O valor foi armazenado na variável "V". Este valor variável será exibido usando a instrução printf mostrada no código C. Agora você pode salvar o código preenchido por "Ctrl+S" e deixá -lo de volta ao console, utilizando comandos de atalho "Ctrl+X".
Vamos compilar o “SEMCTL.Arquivo C ”no console. Use o compilador “GCC” recomendado para esses tipos de códigos C complicados. A compilação retorna o aviso, mas não há necessidade de pânico. Execute seu arquivo com o “a.out ”comando. A saída mostra que o valor atual do semáforo é "-1".
$ GCC SEMCTL.c
$ ./a.fora
Vamos abrir o arquivo mais uma vez para torná -lo diferente um pouco. Abra -o usando o editor "Nano" e defina a variável "max_comps" com algum valor, e.g. 10. Desta vez, atualize o código com o script mostrado abaixo. Comece a partir da inicialização do método principal. Ele contém a chamada de função do método comp_use (). Agora o controle foi dado ao método comp_use.
A função comp_use contém o loop "for" para usar o valor variável "max_comps" como um valor máximo para o loop "for". Até que o loop termine, a declaração de impressão mostrará o número do computador. Ele também recebe e imprime o valor atual do semáforo do método "get_val" chamando -o aqui. O método get_val foi executado e retornou seu valor à declaração de impressão da função comp_use () para exibi -lo na tela. Salve o arquivo de código mais uma vez e desista para voltar.
Agora temos que compilar o código atualizado com o comando "gcc" para compilação. Após a compilação bem -sucedida, executamos o arquivo e obtivemos o valor do semáforo para cada computador.
$ GCC SEMCTL.c
$ ./a.fora
Conclusão:
A chamada do sistema SEMCTL e seu trabalho foi demonstrado claramente neste guia com a linguagem C usando o Ubuntu 20.04 Sistema Linux. Esperamos que você ache este artigo útil enquanto entende e aprende os conceitos de semáforos no sistema Linux.