Apri l'applicazione della console dall'area di ricerca. Un modo rapido alternativo per aprire la console è tramite "ctrl+alt+t".
Esempio:
Crea un nuovo file C nella cartella domestica del sistema Linux con l'utilizzo del comando "Touch". Abbiamo nominato questo file c come "Semctl.C". Puoi nominarlo come vuoi. La query è la seguente:
$ touch semctl.C
L'editor GNU Nano verrà utilizzato per modificare e aprire il file. Quindi, la query sotto indicata è stata utilizzata per aprire il "Semctl.file c ".
$ nano semctl.C
Come mostrato nell'immagine sotto che il file è già stato aperto nell'editor. Scrivi lo stesso codice nel tuo file per visualizzare il funzionamento della chiamata di sistema "Semctl ()". Il file di intestazione per input-output e semafori è stato incluso all'inizio del file C. Il metodo principale è stato dichiarato insieme a un'altra funzione, "get_val ()". A partire dal metodo principale, abbiamo definito una variabile "V" ottenendo il suo valore dalla funzione get_val. Questo metodo è stato chiamato mentre è passato con due argomenti nei parametri. Ora il controllo è stato dato alla funzione get_val (). Questa funzione contiene due argomenti, E.G. SID come ID semaforo e "semnum" come numero di semaforo. I valori passati 1 e 4 saranno salvati su questi argomenti.
Il comando Semctl è stato utilizzato all'interno della funzione per ottenere il set di semaforo corrente utilizzando l'ID semaforo e il numero di semaforo. La funzione getval è stata utilizzata qui per ottenere il valore di semaforo corrente. Dopo la raccolta di un valore di semaforo, è stato restituito al metodo principale. Il valore è stato memorizzato nella variabile "V". Questo valore variabile verrà visualizzato utilizzando l'istruzione printf mostrata nel codice C. Ora puoi salvare il codice completato tramite "ctrl+s" e lasciarlo alla console utilizzando comandi di scelta rapida "ctrl+x".
Compilamoci il "Semctl.File C "nella console. Utilizzare il compilatore "GCC" consigliato per tali tipi di codici C complicati. La compilazione restituisce l'avvertimento, ma non è necessario il panico. Eseguire il tuo file con "a.comando fuori ". L'output mostra che il valore di semaforo corrente è "-1".
$ GCC Semctl.C
$ ./UN.fuori
Apriamo di nuovo il file per renderlo un po 'diverso. Aprilo usando l'editor "nano" e definisci la variabile "max_comps" con un certo valore, E.G. 10. Questa volta aggiorna il codice con lo script mostrato di seguito. Inizia dall'inizializzazione del metodo principale. Contiene la funzione di funzione del metodo comp_use (). Ora il controllo è stato dato al metodo comp_use.
La funzione comp_use contiene il ciclo "per" per utilizzare il valore "max_comps" variabile come valore massimo per il loop "per". Fino al termine del ciclo, l'istruzione di stampa mostrerà il numero del computer. Ottiene e stampare anche il valore di semaforo corrente dal metodo "get_val" chiamandolo qui. Il metodo get_val è stato eseguito e restituito il suo valore all'istruzione di stampa di funzione comp_use () per visualizzarlo sullo schermo. Salva ancora una volta il file del codice e esci per tornare.
Ora dobbiamo compilare il codice aggiornato con il comando "GCC" per la compilazione. Dopo la compilazione riuscita, abbiamo eseguito il file e ottenuto il valore semaforo per ciascun computer.
$ GCC Semctl.C
$ ./UN.fuori
Conclusione:
La chiamata di sistema Semctl e il suo lavoro sono stati dimostrati chiaramente in questa guida con il linguaggio C usando Ubuntu 20.04 Sistema Linux. Speriamo che troverai questo articolo utile mentre si capisce e imparando i concetti di semafori nel sistema Linux.