[C-Sprache] [Linux] Versuchen Sie, einen einfachen Linux-Befehl zu erstellen. * Fügen Sie einfach hinzu! !!

Einführung

Ich habe überhaupt keine C-Sprache verwendet, deshalb wollte ich sie zum ersten Mal seit einiger Zeit wieder verwenden. Also werde ich versuchen, meinen eigenen Befehl zu erstellen, der sich einfach summiert, auch als Überprüfung von Linux.

Die Spezifikation des Befehls besteht darin, den Gesamtwert der numerischen Werte nach dem zweiten Argument der Befehlszeile auszugeben.

Zweck

・ Wenn Sie einen einfachen Befehl erstellen, können Sie sich vorstellen, wie der Befehl aussieht. -Verstehen Sie das Konzept von PATH, auf das sich Linux bei der Ausführung von Befehlen bezieht. Aus den oben genannten Gründen wird eine detaillierte Erläuterung der Implementierung weggelassen.

Umgebung

・ Amazon Linux AMI Release 2018.03

Verfahren

1. Erstellen Sie ein Testverzeichnis

Danach wird in diesem Verzeichnis gearbeitet.

Befehl zum Erstellen eines Verzeichnisses


$ mkdir test; cd test

2. Erstellen Sie eine Quellcodedatei

Ich verwende hier vi, aber jeder Texteditor kann verwendet werden.

Befehl zum Erstellen von Dateien


$ vi test_sum.c

3. Implementierung

Kopieren Sie den folgenden Quellcode.

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]Ist der Befehl selbst, so wird er vom Berechnungsziel ausgeschlossen, also zählen=Beginnen Sie mit 1*/
  for (count=1; count<argc; count++) {
    sum += atoi(argv[count]);
  }
  printf("%d\n", sum);

  return 0;
}

Außerdem konvertiert atoi von der höchstwertigen Ziffer und stoppt die Konvertierung, wenn ein anderes Zeichen als eine Zahl erkannt wird. Beispiel) "a": Gibt 0 zurück, da nichts konvertiert werden kann. "1a3": Die höchstwertige 1 wird konvertiert, aber die Konvertierung wird gestoppt, da a erkannt wird und 1 zurückgegeben wird.

4. Kompilieren

Kompilieren Sie den Quellcode (test_sum.c) mit gcc

Kompilierungsbefehl


$ gcc -o test_sum test_sum.c

Die Operation ist einfach, aber dies vervollständigt den Befehl test_sum!

5. Einfache Funktionsprüfung

Versuchen Sie es mit Ihrer eigenen test_sum. Probieren Sie unten einige Muster aus.

test_Berechnung mit Summe


$ ./test_sum 123
ERROR: invalid of arguments number
$ ./test_sum 123 23456
23579
$ ./test_sum 123 23456 812
24391

Großer Erfolg! !!

6. PATH-Einstellung

Wenn dies unverändert bleibt, muss der Pfad ("./") jedes Mal angegeben werden. Stellen Sie ihn daher so ein, dass er ohne Angabe des Pfads wie bei anderen Befehlen funktioniert.

6.1. Was ist PATH?

Eine Umgebungsvariable, die den Pfad zum Suchen nach einer Datei zusammenfasst, wenn Linux eine ausführbare Datei (ELF) ausführt. Linux durchsucht die im PATH festgelegten Pfade der Reihe nach und führt die erste gefundene ausführbare Datei aus.

6.2. PATH-Einstellung

Verwenden Sie den Export, um Umgebungsvariablen wie PATH festzulegen. Registrieren Sie den Pfad des aktuellen Verzeichnisses (aktuelles Verzeichnis) im PATH mit dem folgenden Befehl.

Setzen Sie den Pfad des aktuellen Verzeichnisses auf PATH


$ export PATH=$PATH:$(pwd)

Jetzt müssen Sie den Pfad in keinem Verzeichnis angeben! Beachten Sie, dass diese Einstellung verschwindet, wenn Sie die Shell löschen! !! </ strong>

6.3 Funktionsprüfung

Verschieben Sie das Verzeichnis entsprechend und überprüfen Sie den Vorgang.

Funktionsprüfung


$ test_sum 1 2 3
6
$ cd ~
$ test_sum 1 2 3
6
$ cd /tmp
$ test_sum 1 2 3
6

Großer Erfolg! !! Jetzt können Sie den Befehl test_sum wie jeden anderen Linux-Befehl verwenden.

  • Einfach addieren. .. ..

Bonus

Verwenden Sie diese Option, um den Pfad von Befehlen wie ls und find zu überprüfen. Natürlich können Sie auch den Speicherort der erstellten Testsumme mit dem Befehl which überprüfen.

Überprüfen Sie den Befehlspfad


$ which ls
alias ls='ls --color=auto'
        /bin/ls
$ which find
/bin/find
$ which test_sum
~/environment/test/test_sum

Korrekturen

・ Ändern Sie Titel und Inhalt leicht ・ Ergänzung zu PATH

  • Umbenannt, um Verwechslungen mit vorhandenen Befehlen zu vermeiden -Stellen Sie den Endstatus ein (Rückgabewert ist 0 bei Erfolg, 1 bei Fehler) @ Fujitanozomu Vielen Dank für den Hinweis! ・ Zweck hinzufügen

Recommended Posts

[C-Sprache] [Linux] Versuchen Sie, einen einfachen Linux-Befehl zu erstellen. * Fügen Sie einfach hinzu! !!
Versuchen Sie, einen neuen Befehl unter Linux zu erstellen
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Versuchen Sie, eine Sprache auszuwählen
[Go language] Versuchen Sie, einen nutzlos zählbaren Zähler mit mehreren Threads zu erstellen
So fügen Sie MicroPython ein C-Modul hinzu ...
Befehl zum Erstellen von Linux Live USB
Rails-Benutzer versuchen, mit Django eine einfache Blog-Engine zu erstellen
[C-Sprache] So erstellen, vermeiden und erstellen Sie einen Zombie-Prozess
[Linux Convenience-Befehl] Versuchen Sie, lebendig einzufügen
Fügen Sie einen Befehl hinzu, um ähnliche Dateien zusammen zu markieren
Erstellen Sie einen Sub-Sub-Befehl mit dem Klick --netsted-Sub-Sub-Befehl -
Erstellen Sie einen Befehl, um das Arbeitsprotokoll abzurufen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Versuchen Sie, mit Tkinter in Python dynamisch einen Checkbutton zu erstellen
So erstellen Sie ein lokales Repository für Linux
So erstellen Sie ein einfaches TCP-Server / Client-Skript
Erstellen Sie eine einfache API, um JSON-Dateien einzugeben und auszugeben ~ Python / Flask Edition ~
[Python Kivy] So erstellen Sie ein einfaches Popup-Fenster
Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben - OpenCV-Port Python zu C ++ -
Eine super Einführung in Linux
Fügen Sie MeCab ein Wörterbuch hinzu
Erstellen Sie einen (einfachen) REST-Server
Erstellen Sie einen einfachen Textlint-Server
Linux: Erstellen Sie den ursprünglichen Terminal-Befehl
Ich habe versucht, einen einfachen Kredit-Score mit logistischer Regression zu erstellen.
Versuchen Sie, eine Python-Umgebung mit Visual Studio Code & WSL zu erstellen
[Los] Erstellen Sie einen CLI-Befehl, um die Erweiterung des Bildes zu ändern
Versuchen Sie, einen Web-Service-ähnlichen Typ mit 3D-Markup-Sprache zu erstellen
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
Versuchen Sie, einen Artikel von Qiita mit der REST-API [Umweltvorbereitung] zu erstellen.
Erstellen Sie ein Befehlszeilenprogramm, um mit Python Dollar in Yen umzurechnen
[Linux Convenience-Befehl] Versuchen Sie, exa einzufügen
Versuchen Sie, eine Bezier-Kurve zu zeichnen
Schritte zum Erstellen eines Django-Projekts
Ein Memorandum zur Umstellung auf Manjaro Linux
So erstellen Sie ein Conda-Paket
[Linux Convenience-Befehl] Versuchen Sie, csview einzufügen
Einführung in Protobuf-c (C-Sprache ⇔ Python)
So erstellen Sie eine virtuelle Brücke
Befehl [linux] kill, um den Prozess abzubrechen
Erstellen Sie eine Linux-Umgebung unter Windows 10
[Bequemer Linux-Befehl] Versuchen Sie, bat einzufügen
Wie erstelle ich eine Docker-Datei?
5 Möglichkeiten zum Erstellen eines Python-Chatbots
So erstellen Sie eine Konfigurationsdatei
Erstellen Sie mit Boost.Python einen C-Sprach-Wrapper
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
[Python / Tkinter] Suche nach Pandas DataFrame → Erstellen Sie ein einfaches Suchformular zur Anzeige
Erstellen Sie einen Befehl zum Löschen aller temporären Dateien, die in einem bestimmten Ordner generiert wurden
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben. 3-Überlassen Sie die grafische Darstellung matplotlib-
Erstellen Sie einen Socket mit einer Ethernet-Schnittstelle (eth0, eth1) (Linux, C, Raspberry Pi).
Was ist eine C-Sprachbibliothek? Welche Informationen sind für die Öffentlichkeit zugänglich?
[C-Sprache] Verwendung der Krypta-Funktion unter Linux [Passwort-Hashing]
[Python] [Word] [python-docx] Versuchen Sie, mit python-docx eine Vorlage für einen Wortsatz in Python zu erstellen
3. Verarbeitung natürlicher Sprache mit Python 1-2. So erstellen Sie einen Korpus: Aozora Bunko