Ouvrez l'application de la console à partir de la zone de recherche. Une autre façon alternative pour ouvrir la console est via "Ctrl + Alt + T".
Exemple:
Créez un nouveau fichier C dans le dossier domestique du système Linux avec l'utilisation de la commande «Touch». Nous avons nommé ce fichier C comme «semctl.C ". Vous pouvez le nommer comme vous le souhaitez. La requête est la suivante:
$ touch semim.c
L'éditeur GNU Nano sera utilisé pour modifier et ouvrir le fichier. Ainsi, la requête ci-dessous indiquée a été utilisée pour ouvrir le «semctl.Fichier C ”.
$ nano semctl.c
Comme indiqué dans l'image sous le fait que le fichier a déjà été ouvert dans l'éditeur. Écrivez le même code dans votre fichier pour voir le fonctionnement de l'appel système «semctl ()». Le fichier d'en-tête pour l'entrée-sortie et les sémaphores a été inclus au début du fichier C. La méthode principale a été déclarée avec une autre fonction, "get_val ()". À partir de la méthode principale, nous avons défini une variable «V» obtenant sa valeur à partir de la fonction get_val. Cette méthode a été appelée lors de son adoption avec deux arguments dans les paramètres. Maintenant, le contrôle a été donné à la fonction get_val (). Cette fonction contient deux arguments, e.g. Sid comme ID de sémaphore et «Semnum» comme numéro de sémaphore. Les valeurs passées 1 et 4 seront enregistrées à ces arguments.
La commande SEMCTL a été utilisée dans la fonction pour obtenir l'ensemble de sémaphore actuel à l'aide de l'ID de sémaphore et du numéro de sémaphore. La fonction GetVal a été utilisée ici pour obtenir la valeur de sémaphore actuelle. Après la collecte d'une valeur de sémaphore, il a été renvoyé à la méthode principale. La valeur a été stockée dans la variable «V». Cette valeur de variable sera affichée à l'aide de l'instruction PRINTF affichée dans le code C. Vous pouvez maintenant enregistrer le code terminé par «Ctrl + S» et le laisser à la console en utilisant les commandes de raccourci «Ctrl + X».
Compilons le «semctl.Fichier C ”dans la console. Utilisez le compilateur «GCC» recommandé pour de tels types de codes C compliqués. La compilation renvoie l'avertissement, mais il n'y a pas besoin de panique. Exécutez votre fichier avec le «A.Commande. La sortie montre que la valeur de sémaphore actuelle est «-1».
$ gcc semctl.c
$ ./un.dehors
Ouvrons à nouveau le fichier pour le rendre un peu différent. Ouvrez-le à l'aide de l'éditeur «Nano» et définissez la variable «Max_Comps» avec une certaine valeur, E.g. dix. Cette fois, mettez à jour le code avec le script ci-dessous affiché. Commencez par l'initialisation de la méthode principale. Il contient l'appel de fonction de la méthode comp_use (). Maintenant, le contrôle a été donné à la méthode comp_use.
La fonction comp_use contient la boucle «pour» pour utiliser la valeur de la variable «Max_Comps» comme valeur maximale à la boucle «For». Jusqu'à la fin de la boucle, l'instruction IMPREST affichera le numéro d'ordinateur. Il obtient également et imprime la valeur de sémaphore actuelle de la méthode «get_val» en l'appelant ici. La méthode get_val a été exécutée et a renvoyé sa valeur à l'instruction d'impression de la fonction comp_use () pour l'afficher à l'écran. Enregistrez le fichier de code une fois de plus et quittez-le pour revenir.
Nous devons maintenant compiler le code mis à jour avec la commande «GCC» pour la compilation. Après la compilation réussie, nous avons exécuté le fichier et obtenu la valeur du sémaphore pour chaque ordinateur.
$ gcc semctl.c
$ ./un.dehors
Conclusion:
L'appel du système SEMCTL et son fonctionnement ont été clairement démontrés dans ce guide avec le langage C à l'aide d'Ubuntu 20.04 Système Linux. Nous espérons que vous trouverez cet article utile lors de la compréhension et de l'apprentissage des concepts de sémaphores dans le système Linux.