Fonction du système dans le langage C

Fonction du système dans le langage C

La console de commande Linux est sans aucun doute quelque chose comme le salon de nous tous qui sommes fans de ce système d'exploitation. Les innombrables commandes que Linux propose fait partie de notre environnement de travail quotidien et beaucoup d'entre eux que nous connaissons et utilisons par cœur. La possibilité d'exécuter ces commandes dans Linux à partir de notre code C et d'interaction directement avec le système d'exploitation à partir de là ouvre un certain nombre de ressources très utiles pour le programmeur.

Dans ce Indice de linux Article, nous expliquerons tout ce que vous devez savoir pour exécuter les commandes à partir du code C à l'aide du système() fonction. Nous expliquerons le cadre théorique de cette fonction, ses arguments d'entrée et de sortie et le type de données qu'il accepte dans chaque cas. Nous appliquerons ensuite ce que nous avons appris dans un exemple pratique qui inclut les extraits de code où nous exécutons les différentes commandes Linux de notre code C.

Syntaxe de la fonction System () dans le langage C

Système int (const char * str);

Description de la fonction Système () dans le langage C

Le système() La fonction exécute une commande dans le shell système Linux ou un autre système d'exploitation.

Si la commande est exécutée correctement, système() Renvoie «0».

Cette fonction a un pointeur vers la chaîne STR comme seul argument d'entrée, qui contient la commande à exécuter dans le système textuellement et sans erreurs de syntaxe.

Le système() La fonction exécute les commandes dans le système Linux, mais ne récupére aucune information ni ne renvoie les résultats de la commande exécutée.

Système() fait partie de la bibliothèque standard «stdlib». Pour l'utiliser, nous devons l'inclure dans notre fichier de code comme suit:

#inclure

Une fois le «stdlib.La bibliothèque h ”est incluse, nous pouvons utiliser la fonction System ().

Ensuite, nous verrons quelques exemples d'utilisation de la fonction System () pour exécuter les différentes commandes de l'interpréteur Linux.

Exemple 1: Comment exécuter une commande dans l'interpréteur Linux à l'aide de la fonction System () en C

Dans cet exemple, nous ouvrons un fichier avec la fonction fopen () et utilisons la fonction système () pour envoyer un bip au système en cas d'erreur d'ouverture.

La fonction fopen () renvoie 0 si une erreur se produit lors de l'ouverture du fichier. Nous mettons cette valeur en tant que condition dans une condition IF et exécutons la commande «bip» dans l'interprète avec système( ) Pour informer l'utilisateur de son erreur.

Nous voyons le code à cet effet dans l'illustration suivante. Dans le chemin d'accès qui spécifie le fichier, nous mettons le nom d'un fichier inexistant pour générer une erreur:


#inclure
#inclure
vide main ()

Fichier * f_ptr;
tampon char [250];
f_ptr = fopen ("documents / not exister", "r");
if (f_ptr == 0)

système ("bip")
printf ("pas de tel fichier \ n");

Exemple 2: Comment reconnaître si la commande exécutée avec la fonction System () est interprétée correctement

Dans cet exemple, nous expliquons comment déterminer si la commande est exécutée correctement dans la console Linux. Une erreur dans l'exécution de la commande elle-même ne fait pas référence à une erreur dans l'exécution de la fonction System (). Par conséquent, le système ne journalise pas cette exception dans la variable de code d'erreur, «Errno».

Comme mentionné dans la description, la fonction System () exécute les commandes du système, mais ne renvoie pas les résultats.

L'argument de sortie de cette fonction est un entier qui renvoie «0» si la commande est exécutée avec succès sur le système. Sinon, il renvoie une autre valeur.

Ensuite, nous voyons un fragment de code où nous utilisons le retour du système() fonction pour déterminer si la commande est exécutée correctement.

Dans ce code, nous envoyons la commande «bip». Mais pour la pratique de cet exemple, nous pouvons envoyer les différentes commandes correctes et incorrectes dans l'argument d'entrée du système() fonction pour voir les différents résultats.

Nous utilisons le retour du système() Fonctionne comme une condition dans une condition IF-Else. Si la commande est exécutée correctement, un message s'affiche à l'écran avec le texte suivant:

«La commande a été exécutée avec succès."

Sinon, le message suivant s'affiche:

«Le commandement n'a pas été reconnu ou n'a pas pu être exécuté."


#inclure
#inclure
vide main ()

int a;
système ("bip");
if (a == 0)
printf («La commande a été exécutée avec succès \ n»);
autre
printf ("La commande n'a pas été reconnue ou n'a pas pu être exécutée \ n");

Conclusion

Dans ce Indice de linux Article, nous avons expliqué comment utiliser le système() fonction pour exécuter les commandes dans le shell Linux. Nous avons également examiné l'argument d'entrée et les données qu'elle accepte, ainsi que l'argument de sortie et la valeur de retour lorsque la commande est exécutée avec succès.

De plus, nous avons donné quelques exemples pratiques avec des fragments de code et des images qui montrent comment utiliser cette fonction en appelant et en exécutant les différentes commandes de l'interpréteur Linux via système(). Nous espérons que cet article vous est utile. Pour plus d'articles comme celui-ci, utilisez notre moteur de recherche sur le site Web.