ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
getopt()
Π²ΡΠ·ΡΠ²Π°ΠΉΡΠ΅ Π΅Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ· ΡΠΈΠΊΠ»Π°
while
Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π²Π΅ΡΠ½Π΅Ρ
-1
. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠΏΡΠΈΠΈ, ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ». ΠΡΠ»ΠΈ ΠΎΠΏΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
optarg
. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΠΏΡΠΈΡ
-Π°
Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΎΠΏΡΠΈΡ
-b
Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ:
int ΠΎΡ; /* ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠΏΡΠΈΠΈ */
char *b_opt_arg;
while ((ΠΎΡ = getopt(argc, argv, "ab:")) != -1) {
Β switch (oc) {
Β case 'a':
Β /* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° -Π°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»Π°Π³ */
Β break;
Β case 'b':
Β /* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° -b, ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠ· optarg */
Β b_opt_arg = optarg;
Β break;
Β case ':':
Β ... /* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΌ. ΡΠ΅ΠΊΡΡ */
Β case '?':
Β default:
Β ... /* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΌ. ΡΠ΅ΠΊΡΡ */
Β }
}
Π Ρ
ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ
getopt()
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠΈΡ
ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ:
char *optarg
ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
int optind
Π’Π΅ΠΊΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π²
argv
. ΠΠΎΠ³Π΄Π° ΡΠΈΠΊΠ»
loop
Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Ρ
argv[optind]
ΠΏΠΎ
argv[argc-1]
. (ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ '
argv [argc] ==NULL
'.)
int opterr
ΠΠΎΠ³Π΄Π° ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΠ°Π²Π½Π° Π½ΡΠ»Ρ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ),
getopt()
ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΎΠΏΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠΏΡΠΈΠΉ.
int optopt
ΠΠΎΠ³Π΄Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠΏΡΠΈΠΈ,
getopt()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΈΠ±ΠΎ '
?
', Π»ΠΈΠ±ΠΎ '
:
' (ΡΠΌ Π½ΠΈΠΆΠ΅), a
optopt
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠΉ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
ΠΡΠ΄ΠΈ Π΅ΡΡΡ Π»ΡΠ΄ΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π±ΡΠ΄ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π»ΠΈΠ±ΠΎ Ρ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ, Π»ΠΈΠ±ΠΎ Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΎΠΏΡΠΈΠΈ. ΠΠ±ΡΡΠ½ΠΎ Π² ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
getopt()
Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» '
?
'. ΠΠ΄Π½Π°ΠΊΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π·Π°ΠΏΠΈΡΠ°Π² 0 Π²
opterr
ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ
getopt()
, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ
getopt()
Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π²
optstring
ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ,
getopt()
Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΅Π²Π΅ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ
getopt()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ '
?
', a
optopt
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠΏΡΠΈΠΈ (ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅).
ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈ
getopt()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ '
:
'. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»
optstring
Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ,
getopt()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ '
?
', Π΄Π΅Π»Π°Ρ ΡΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ΠΎΡΠ»ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ ΡΠ»ΡΡΠ°Ρ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°
optstring
Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΠΌΡΡΠ»ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ Β«Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΎΠΏΡΠΈΡΒ» ΠΈ Β«ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈΒ». Π Π°ΡΠΏΠ»Π°ΡΠΎΠΉ Π·Π° ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ
getopt()
Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π·Π°ΡΡΠ°Π²Π»ΡΡ Π²Π°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
. ΠΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΡΠΎΡ ΡΠ°Π· Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ:
int ΠΎΡ; /* ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΠΏΡΠΈΠΈ */
char *b_opt_arg;
while ((ΠΎΡ = getopt(argc, argv, ":ab:")) != -1) {
Β switch (oc) {
Β case 'a':
Β /* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° -a, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π°Π³Π° */
Β break;
Β case 'b':
Β /* ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° -b, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠ· optarg */
Β b_opt_arg = optarg;
Β Β break;
Β case ':':
Β /* ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈ */
Β fprintf(stderr, "%s: option '-%c' requires an argument\n",
Β Β argv[0], optopt);
Β break;
Β case '?':
Β default:
Β /* Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ */
Β fprintf(stderr, "%s: option '-%c' is invalid: ignored\n",
Β Β argv[0], optopt);
Β break;
Β }
}
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΡ
ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π°Π³ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΉ: Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Unix ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π° Π² Π²ΠΈΠ΄Π΅
xflg
Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΎΠΏΡΠΈΠΈ
x (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
nflg
Π²
echo
V7; ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅
xflag
). ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π»Ρ Π°Π²ΡΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΡ
x. ΠΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΠ΅, ΠΊΡΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ Π½Π°ΠΈΠ·ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ΅Ρ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠΏΡΠΈΠΉ. ΠΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π°, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠ΅ ΡΠΌΡΡΠ» ΠΎΠΏΡΠΈΠΈ, ΠΊΠ°ΠΊ
no_newline
Π΄Π»Ρ ΠΎΠΏΡΠΈΠΈ
-n
echo.
2.3.2. GNU
getopt()
ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠΏΡΠΈΠΉ
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ
getopt()
ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠΈΡΠΊ ΠΎΠΏΡΠΈΠΉ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ GNU
getopt()
ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ: ΠΎΠ½Π° ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ
ΠΎΠΏΡΠΈΠΉ Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
argv
, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌΠΈ Π² Π½Π°ΡΠ°Π»ΠΎ, ΠΈ ΠΊΠΎΠ΄, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΠΈΠΉ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Ρ
argv[optind]
Π΄ΠΎ
argv[argc-1]
, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΠΎ Π²ΡΠ΅Ρ
ΡΠ»ΡΡΠ°ΡΡ
ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ '
--
' Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΉ.