getopt()について聞きたいんですが、これってUNIXでは標準の関数なんですか?
というかunistdに書いてあるような関数はUNIXでは標準なんですか?

getopt()の内容についてなんですが、
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/getopt.3.html
では、
「必要な引き数が足りないオプションがあると `:' を返す。」
と書いてあるんですが、
僕の環境では、未知のオプションに対する扱いと同じ「?」が帰ってきてしまいます。
例;
 hoge = getopt( argc, argv, "ab:" )
 を使って
 ./a.out -a -b
 とすると、bはオプションが引数を取る指定なので、
 「足りない」ために「:」がhogeに入るはずなんですが、
 実際には「?」が入ってしまいます。
cygwinを使ってます。何処が悪くて説明と矛盾した結果が出ているのか知りたいです。
上のサイトの説明?cygwin上の実装時の問題か何か?

お願いします。