1 is all good and well if you're writing specifically for unix.

2 is Ok if you're writing a GUI application or an application that requires an event loop.

Neither is acceptable if you're writing a simple server application that wants to parse the command line on startup and doesn't want the huge footprint of Qt's event loop or GUI.

Has somebody written something like this yet?