Arg_parser is an argument parser that follows POSIX and GNU conventions for command line arguments. There exist C++ and C versions of Arg_parser. The C++ version is implemented as a C++ class, while the C version is implemented as a single struct plus associated functions. Both are simpler, easier to use, and safer than 'getopt_long'. The C++ version of Arg_parser can also parse options from configuration files.