| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
1,219 バイト追加 、 2020年2月15日 (土) 07:30
ページの作成:「==C getopt== getopt を利用することで、option指定方法のguidelineを簡単に実現できる。 独自の値をとるoption、取らないoptionの両方…」
==C getopt==

getopt を利用することで、option指定方法のguidelineを簡単に実現できる。
独自の値をとるoption、取らないoptionの両方をsupportする。
#include <unistd.h>
int getopt(int argc, char *const argv[], const char *optstring);
extern char *optarg;
extern int optind, opterr, optopt;
*optstringは、programで指定するoptionと、各optionが独自の値をとるかどうかを指定する。
*文字の後に : がついている場合、そのoptionが、引数をとる
*戻り値は、配列argvの中で見つかった、次のoption文字。
*optionが値をとる場合、外部変数 optargに値がセットされる

#include <unistd.h>
#include <stdio.h>
extern char *optarg;extern int optind, opterr, optopt;

int main(int argc, char *argv[])
{
int i = 1; char c;
char os[3] = {'\0',':','\0'};
for( c = 'a'; c <= 'z'; c++) {
os[0] = c;
int opt = getopt(argc, argv, (const char*)&os);
if (opt > -1) {
printf("[%d]%c : %s\n", (i++), opt, optarg);
}
}
}

# ./get_opt -a optionA -b optionB -c optionC
[1]a : optionA
[2]b : optionB
[3]c : optionC
----
この本からの覚書。
{{amazon|4797327014}}

案内メニュー