Je n'utilisais pas du tout le langage C, donc je voulais l'utiliser pour la première fois depuis longtemps. Donc, je vais essayer de créer ma propre commande qui s'additionne, également en tant que revue de Linux.
La spécification de la commande consiste à afficher la valeur totale des valeurs numériques après le deuxième argument de la ligne de commande.
・ En créant une commande simple, vous pouvez imaginer à quoi ressemble la commande. -Comprendre le concept de PATH auquel Linux se réfère lors de l'exécution de commandes. Pour les raisons ci-dessus, une explication détaillée de la mise en œuvre est omise.
・ Amazon Linux AMI version 2018.03
Après cela, le travail sera effectué sous ce répertoire.
Commande de création d'annuaire
$ mkdir test; cd test
J'utilise vi ici, mais n'importe quel éditeur de texte peut être utilisé.
Commande de création de fichier
$ vi test_sum.c
Copiez le code source suivant.
test_sum.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int sum = 0;
int count = 0;
if (argc < 3) {
printf("ERROR: invalid of arguments number\n");
return 1;
}
/* argv[0]Est la commande elle-même, elle est donc exclue de la cible de calcul, donc comptez=À partir de 1*/
for (count=1; count<argc; count++) {
sum += atoi(argv[count]);
}
printf("%d\n", sum);
return 0;
}
Notez que atoi convertit à partir du chiffre le plus significatif et arrête la conversion lorsqu'il détecte un caractère autre qu'un nombre. Exemple) "a": renvoie 0 car rien ne peut être converti. "1a3": le 1 le plus significatif est converti, mais la conversion est arrêtée car a est détecté et 1 est renvoyé.
Compilez le code source (test_sum.c) en utilisant gcc
Commande de compilation
$ gcc -o test_sum test_sum.c
L'opération est simple, mais ceci termine la commande test_sum!
Essayez d'utiliser votre propre test_sum. Ci-dessous, essayez quelques modèles.
test_Calcul à l'aide de la somme
$ ./test_sum 123
ERROR: invalid of arguments number
$ ./test_sum 123 23456
23579
$ ./test_sum 123 23456 812
24391
Grand succès! !!
Si cela reste tel quel, il sera nécessaire de spécifier le chemin ("./") à chaque fois, alors réglez-le pour qu'il fonctionne sans spécifier le chemin comme les autres commandes.
Une variable d'environnement qui résume le chemin pour rechercher un fichier lorsque Linux exécute un fichier exécutable (ELF). Linux recherche les chemins définis dans le PATH dans l'ordre et exécute le premier fichier exécutable trouvé.
Utilisez l'exportation pour définir des variables d'environnement telles que PATH. Enregistrez le chemin du répertoire actuel (répertoire actuel) dans le PATH avec la commande suivante.
Définissez le chemin du répertoire actuel sur PATH
$ export PATH=$PATH:$(pwd)
Vous n'avez plus à spécifier le chemin dans aucun répertoire! Notez que ce paramètre disparaît lorsque vous déposez le shell! !! </ strong>
Déplacez le répertoire de manière appropriée et vérifiez le fonctionnement.
Contrôle de fonctionnement
$ test_sum 1 2 3
6
$ cd ~
$ test_sum 1 2 3
6
$ cd /tmp
$ test_sum 1 2 3
6
Grand succès! !! Vous pouvez maintenant utiliser la commande test_sum comme n'importe quelle autre commande Linux.
Utilisez lequel pour vérifier le chemin des commandes telles que ls et find. Bien sûr, vous pouvez également vérifier l'emplacement du test_sum créé avec la commande which.
Vérifiez le chemin de la commande
$ which ls
alias ls='ls --color=auto'
/bin/ls
$ which find
/bin/find
$ which test_sum
~/environment/test/test_sum
・ Modifiez légèrement le titre et le contenu ・ Ajout sur PATH -Renommé pour éviter toute confusion avec les commandes existantes -Définir l'état de fin (la valeur de retour est 0 en cas de succès, 1 en cas d'échec) @fujitanozomu Merci d'avoir souligné! ・ Ajouter un objectif
Recommended Posts