.\" -*- coding: UTF-8 -*- '\" t .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getopt_long 3 "14. Februar 2026" "Linux man\-pages 6.18" .SH BEZEICHNUNG getopt_long \- Befehlszeilenoptionen auswerten .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP,\ \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#define _GNU_SOURCE\fP \fB#include \fP .P \fBint getopt_long(int \fP\fIargc\fP\fB, char *\fP\fIargv\fP\fB[],\fP \fB const char *\fP\fIoptzeichenkette\fP\fB,\fP \fB const struct option *\fP\fIlangopt\fP\fB, int *\fP\fIlangindex\fP\fB);\fP .fi .SH BESCHREIBUNG Die Funktion \fBgetopt_long\fP() funktioniert wie \fBgetopt\fP(3), außer dass sie auch lange Optionen, die mit zwei Bindestrichen beginnen, akzeptiert. (Falls das Programm nur lange Optionen akzeptiert, dann sollte \fIoptzeichenkette\fP als leere Zeichenkette ("") und nicht NULL angegeben werden). Lange Optionen dürfen abgekürzt werden, falls die Abkürzung eindeutig ist oder genau mit einer definierten Option übereinstimmt. Eine lange Option darf einen Parameter der Form \fB\-\-arg=param\fP oder \fB\-\-arg param\fP akzeptieren. .P \fIlangopt\fP ist ein Zeiger auf das erste Element eines Feldes von Strukturen \fBstruct option\fP, die in \fB\fP deklariert ist als .P .in +4n .EX struct option { const char *name; int has_arg; int *flag; int val; }; .EE .in .P Die Bedeutungen der einzelnen Felder sind: .TP \fIname\fP ist der Name der langen Option. .TP \fIhas_arg\fP ist: \fBno_argument\fP (oder 0), falls die Option kein Argument erwartet, \fBrequired_argument\fP (oder 1), falls die Option ein Argument benötigt oder \fBoptional_argument\fP (oder 2), falls die Option ein optionales Argument erwartet. .TP \fIflag\fP gibt an, wie für eine lange Option Ergebnisse zurückgegeben werden. Falls \fIflag\fP NULL ist, dann gibt \fBgetopt_long\fP() \fIval\fP zurück. (Zum Beispiel kann das aufrufende Programm \fIval\fP auf das Zeichen der äquivalenten Kurzoption setzen.) Anderenfalls gibt \fBgetopt_long\fP() 0 zurück und \fIflag\fP zeigt auf eine Variable, die auf \fIval\fP gesetzt wird, falls die Option gefunden wird, und die unverändert gelassen wird, falls die Option nicht gefunden wird. .TP \fIval\fP ist der Wert, der zurückzugeben oder in die Variable zu laden ist, auf die \fIflag\fP zeigt. .P Das letzte Element des Feldes muss mit Nullen gefüllt werden. .P Falls \fIlangindex\fP nicht \fBNULL\fP ist, zeigt er auf eine Variable, welche auf den Index der langen Option relativ zu \fIlangopt\fP gesetzt wird. .P Sie ist zu »\fIargv[(optind \- 1)]\fP« von \fBgetopt\fP(3)'s \fIoptopt\fP analog. .SH RÜCKGABEWERT Siehe \fBgetopt\fP(3). .P \fBgetopt_long\fP() liefert auch das Optionszeichen zurück, wenn eine kurze Option erkannt wird. Für eine lange Option liefert sie \fIval\fP zurück, wenn \fIflag\fP NULL ist und ansonsten 0. Fehler und \-1 werden wie bei \fBgetopt\fP(3) zurückgegeben, sowie »?« für einen nicht eindeutigen Treffer oder einen irrelevanten Parameter. .SH UMGEBUNGSVARIABLEN Siehe \fBgetopt\fP(3). .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lb lb lbx l l l. Schnittstelle Attribut Wert T{ .na .nh \fBgetopt_long\fP() T} Multithread\-Fähigkeit T{ .na .nh MT\-Unsicher race:getopt env T} .TE .SH STANDARDS GNU. .SH BEISPIELE Das folgende Beispielprogramm veranschaulicht die Benutzung von \fBgetopt_long\fP() mit der Mehrzahl ihrer Funktionalitäten. .P .\" SRC BEGIN (getopt_long.c) .EX #include #include #include #include \& int main(int argc, char *argv[]) { int c; int digit_optind = 0; \& for (;;) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"add", required_argument, 0, 0 }, {"append", no_argument, 0, 0 }, {"delete", required_argument, 0, 0 }, {"verbose", no_argument, 0, 0 }, {"create", required_argument, 0, \[aq]c\[aq]}, {"file", required_argument, 0, 0 }, {0, 0, 0, 0 } }; \& c = getopt_long(argc, argv, "abc:d:012", long_options, &option_index); if (c == \-1) break; \& switch (c) { case 0: printf("Option %s", long_options[option_index].name); if (optarg) printf(" mit Arg %s", optarg); printf("\[rs]n"); break; \& case \[aq]0\[aq]: case \[aq]1\[aq]: case \[aq]2\[aq]: if (digit_optind != 0 && digit_optind != this_option_optind) printf("Ziffern treten in zwei verschiedenen Argv\-Elementen auf.\[rs]n"); digit_optind = this_option_optind; printf("Option %c\[rs]n", c); break; \& case \[aq]a\[aq]: printf("Option a\[rs]n"); break; \& case \[aq]b\[aq]: printf("Option b\[rs]n"); break; \& case \[aq]c\[aq]: printf("Option c mit Wert \[aq]%s\[aq]\[rs]n", optarg); break; \& case \[aq]d\[aq]: printf("Option d mit Wert \[aq]%s\[aq]\[rs]n", optarg); break; \& case \[aq]?\[aq]: break; \& default: printf("?? getopt lieferte Zeichen\-Code 0%o ??\[rs]n", c); } } \& if (optind < argc) { printf("Nicht\-Options\-ARGV\-Elemente: "); while (optind < argc) printf("%s ", argv[optind++]); printf("\[rs]n"); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "SIEHE AUCH" \fBgetopt\fP(1), \fBgetopt\fP(3), \fBgetopt_long_only\fP(3), \fBgetsubopt\fP(3) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .