.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
.\"
+.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
-.\" License.
+.\" %%%LICENSE_END
+.\"
.\" Modified Sat Jul 24 19:27:50 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Mon Aug 30 22:02:34 1995 by Jim Van Zandt <jrv@vanzandt.mv.com>
.\" longindex is a pointer, has_arg can take 3 values, using consistent
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH GETOPT 3 2010\-11\-01 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved.
+.\" Translated 1998-08-12, NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated & Modified 1999-08-21, NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated & Modified 2001-07-01, Yuichi SATO <ysato@h4.dion.ne.jp>
+.\" Updated & Modified 2002-03-23, Yuichi SATO
+.\" Updated & Modified 2003-09-07, Yuichi SATO <ysato444@yahoo.co.jp>
+.\" Updated & Modified 2005-01-10, Yuichi SATO
+.\" Updated & Modified 2005-10-28, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated & Modified 2006-01-18, Akihiro MOTOKI
+.\" Updated & Modified 2007-05-01, Akihiro MOTOKI, LDP v2.46
+.\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05
+.\"
+.TH GETOPT 3 2015\-02\-01 GNU "Linux Programmer's Manual"
.SH 名前
getopt, getopt_long, getopt_long_only, optarg, optind, opterr, optopt \-
コマンドラインオプションを解釈する
.PP
\fIoptstring\fP は受け付けるオプション文字からなる文字列である。 文字のあとにコロン (:) が置かれている場合は、
オプションには引き数が必要であることを示す。 このとき \fBgetopt\fP() は、現在注目している \fIargv\fP
-è¦\81ç´ ã\81§ã\80\81ã\82ªã\83\97ã\82·ã\83§ã\83³æ\96\87å\97ã\81«å¼\95ã\81\8dç¶\9aã\81\8fã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8bã\80\81 ã\81\82ã\82\8bã\81\84ã\81¯æ¬¡ã\81® \fIargv\fP è¦\81ç´ ã\81®ã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92 \fIoptarg\fP ã\81«ä»£å\85¥ã\81\99ã\82\8bã\80\82
-2 個連続してコロンが置かれている場合は、 そのオプションは引き数をとってもとらなくてもよい。 現在の \fIargv\fP 要素にテキストがあれば
-(つまり、"\-oarg" のように、オプション名自身と同じワード内に テキストがある場合)、それが \fIoptarg\fP に返される。 なければ
-\fIoptarg\fP は 0 に設定される。 これは GNU による拡張である。 \fIoptstring\fP に \fBW\fP
+è¦\81ç´ ã\81§ã\80\81ã\82ªã\83\97ã\82·ã\83§ã\83³æ\96\87å\97ã\81«å¼\95ã\81\8dç¶\9aã\81\8fã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8bã\80\81 ã\81\82ã\82\8bã\81\84ã\81¯æ¬¡ã\81® \fIargv\fP è¦\81ç´ ã\81®ã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fIoptarg\fP
+に代入する。 2 個連続してコロンが置かれている場合は、 そのオプションは引き数をとってもとらなくてもよい。 現在の \fIargv\fP
+要素にテキストがあれば (つまり、"\-oarg" のように、オプション名自身と同じワード内に テキストがある場合)、それが \fIoptarg\fP
+に返される。 なければ \fIoptarg\fP は 0 に設定される。 これは GNU による拡張である。 \fIoptstring\fP に \fBW\fP
とそれに続くセミコロンが入っていると、 \fB\-W foo\fP は長いオプション \fB\-\-foo\fP と同じように扱われる (POSIX.2 は \fB\-W\fP
オプションを実装依存の拡張として予約している)。 この動作は GNU による拡張であり、glibc 2 以前のライブラリでは 利用できない。
.PP
あるいは定義されたオプションに正確にマッチするものでも (当然) かまわない。 長いオプションは引き数を取ることができ、 \fB\-\-arg=param\fP
または \fB\-\-arg param\fP と言う形式で指定する。
.PP
-\fIlongopts\fP は \fIstruct option\fP の要素からなる配列の、先頭要素へのポインタである。 \fIstruct option\fP は
+\fIlongopts\fP ã\81¯ \fIstruct option\fP ã\81®è¦\81ç´ ã\81\8bã\82\89ã\81ªã\82\8bé\85\8då\88\97ã\81®ã\80\81å\85\88é è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fIstruct option\fP ã\81¯
\fI<getopt.h>\fP で以下のように定義されている。
.in +4n
.nf
配列の最後の要素は、全て 0 で埋められていなければならない。
.PP
\fIlongindex\fP は、NULL でなければ、 長いオプションのインデックスを \fIlongopts\fP
-からの相対位置として保持している変数へのポインタとなる。
+ã\81\8bã\82\89ã\81®ç\9b¸å¯¾ä½\8dç½®ã\81¨ã\81\97ã\81¦ä¿\9dæ\8c\81ã\81\97ã\81¦ã\81\84ã\82\8bå¤\89æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81ªã\82\8bã\80\82
.PP
\fBgetopt_long_only\fP() は \fBgetopt_long\fP() と同様の動作をするが、 \(aq\-\(aq も "\-\-"
と同様に、 長いオプションとして扱われる。\(aq\-\(aq で始まる ("\-\-" 以外の) オプションが、長いものにはマッチしないが短いものに
POSIX.2 における \fBgetopt\fP() の仕様には技術的な問題があり、 その内容は POSIX.2 Interpretation 150
に記されている。 GNU による実装では (おそらく他のすべての実装でも)、 仕様と異なる正しい動作をするように実装されている。
.SH 例
+.SS getopt()
以下に示す簡単なサンプルプログラムでは、 二種類のプログラムオプションを扱うのに \fBgetopt\fP() を使用している。一つは値を伴わない
\fI\-n\fP で、もう一つは対応する値が必要な \fI\-t val\fP である。
.nf
}
}
- printf("flags=%d; tfnd=%d; optind=%d\en", flags, tfnd, optind);
+ printf("flags=%d; tfnd=%d; nsecs=%d; optind=%d\en",
+ flags, tfnd, nsecs, optind);
if (optind >= argc) {
fprintf(stderr, "Expected argument after options\en");
exit(EXIT_SUCCESS);
}
.fi
-.PP
+.SS getopt_long()
以下は、 \fBgetopt_long\fP() の使用法を、ほぼすべての機能について示したプログラムの例である。
.nf
.sp
}
.fi
.SH 関連項目
-\fBgetsubopt\fP(3)
+\fBgetopt\fP(1), \fBgetsubopt\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。