getoptを使う
30分プログラム、その257。C言語のgetoptを試してみる。
ちょっとした機会があって、すごく久しぶりにC++を触った。うん、まだまだ忘れてないぞ。
で、そこでコマンドライン引数の解析をしてみたかったので、getoptを試してみた。Python版とかだったら使ったことがあるけれど、オリジナルは初めて。
無駄にcoutとか使っているけど、これはソースの他の部分と統一するため。正直、coutよりもprintfが使いやすい気がしてる。
使い方
$ ./foo -v foo version 1.0.0 $ ./foo -o hoge output file: hoge
ソースコード
#include <iostream> #include <unistd.h> using namespace std; int main(int argc,char* argv[]){ char result; while((result=getopt(argc,argv,"o:hv")) != -1){ switch(result){ case 'o': cout << "output file: " << optarg << endl; break; case 'v': cout << "foo version 1.0.0" << endl; return 0; default: cerr << "error" << endl; return 1; } } return 0; }