Well, in my opinion that's not really an accurate representation of using getopt.
It's how all my getopt code works.
getopt is in libc and a stdlib.h so you can't count that against it :) on the other hand, your sample code didn't show arg/no-arg handling.