Lier l'appel du système en c

Lier l'appel du système en c
L'appel système bind () lie une adresse ou un nom avec n'importe quelle prise dans le langage C. Cet appel système a été principalement utilisé dans la programmation de socket. Cette adresse sera liée au descripteur de socket. L'appel système bind () contient trois paramètres dans. Le premier est le descripteur d'une prise. Le deuxième paramètre est le pointeur utilisé pour l'adresse d'une prise. L'adresse doit être un chemin local. Le troisième argument peut être la taille d'une adresse de socket. Le guide d'aujourd'hui verra comment fonctionne l'appel du système «bind ()» dans Ubuntu 20.04 Utilisation de la langue C. Donc, connectez-vous d'abord à partir du système.

Exemple:

Après la connexion réussie et appropriée à partir du compte utilisateur du système Linux, ouvrez l'application de la console de shell. Vous pouvez soit utiliser la clé de raccourci «Ctrl + Alt + T» ou la rechercher dans la zone d'activité de bureau pour le lancer. Après le lancement de la console terminale, créons d'abord un fichier de langue C avec la requête largement connue «Touch» comme suit:

Ce fichier a été créé dans le dossier Home Linux. Pour ouvrir et modifier ce fichier, utilisez n'importe quel éditeur simple. Les plus suggérés sont Vim et GNU. Nous avons donc utilisé l'éditeur nano «GNU» pour ouvrir le nouveau «nouveau.Fichier C ”.

Une fois le fichier ouvert dans l'éditeur, nous avons ajouté le code ci-dessous. Le code contient les bibliothèques nécessaires qui y sont incluses pour la programmation à la chaussette et le flux d'entrée-sortie. Au tout début d'un code, nous avons défini le chemin d'une prise comme le répertoire «à la maison» d'Ubuntu 20.04. La méthode principale a été initialisée avec une variable entière et un pointeur de tableau de type de caractère comme argument. Une variable entière «S» a été déclarée. Une variable de type de structure pour l'adresse de socket a été initialisée. La fonction «socket» a été utilisée pour initialiser une prise dans le système Linux et un flux de douille avec 0 tailles. Toutes les informations concernant la prise ont été enregistrées dans son descripteur «S». Si la taille d'une prise équivaut à «-1», elle doit lancer un message d'erreur tout en quittant la compilation d'un code.

La fonction «memset» a été utilisée ici pour lier l'adresse de la prise locale avec la taille d'une structure définie déjà. La famille d'une adresse de prise système a été définie. Après cela, l'appel système Strncpy a été utilisé ici pour copier l'adresse de la prise sur un chemin structuré et trouver la taille d'un chemin structuré. Maintenant, la partie principale vient. Nous utilisons ici l'instruction «if» pour utiliser l'appel du système bind (). L'appel du système Bind a récupéré le descripteur de socket, obtenant l'adresse structurelle et la lier à l'adresse de la prise locale et obtenir la taille d'un chemin d'adresse de socket. Si la taille d'une adresse structurelle est égale à «-1», elle imprimera une erreur «se lier» avec un message d'erreur intégré du système à l'aide de la fonction «exit_failure». Le code a été enregistré après cela.

Tout d'abord, compilez votre code avec un compilateur «GCC» utilisé pour le langage C dans le système Linux. Après cela, exécutez le fichier avec le «A.requête out »dans la console. La sortie lance une exception que l'adresse est déjà utilisée. Il a indiqué le répertoire d'adresse «Accueil» du système Linux, qui est toujours dans l'utilisation des utilisateurs.

Ouvrirons le même «nouveau.C ”Fichier pour apporter un petit changement. Nous devons utiliser la même requête «nano» dans l'application de la console pour l'ouvrir dans un éditeur pour modifier. Une fois le fichier correctement ouvert, nous avons modifié le chemin de la prise défini en haut du code. Nous avons changé le chemin des «images» de «chez nous» pour obtenir un résultat différent.

Après la compilation, le fichier a été exécuté et a reçu un autre message. Ce message indique également l'erreur «l'autorisation refusée» pour accéder au chemin «Images».

Conclusion:

Donc, il s'agissait de l'appel du système Bind () dans C dans le système d'exploitation Linux. Nous avons donné une brève explication de la programmation de socket. Assurez-vous de passer par le manuel Linux pour une compréhension claire.