How do I get the option -10 from command line arguments- "tail -10". getopt function finds '1' character. But how do I access the string "10"?
If this can be done by getopt_long, an example would help. Thanks.
Unless you intend for
-1 to be an option with
0 as its argument, the answer is you don't.
getopt is only made for processing options that fit the standard POSIX utilities' option syntax. It may be possible to use GNU
getopt_long for this purpose, or you could just write your own
argv parser (it's easy).
Edit: Actually I think I misread what you want. If you want
- followed by any number to be interpreted as an option with that numeric value, I don't think there's any version of
getopt that will work. There's no way you can special-case every single number as an option, and if you simply tell
getopt that all of the digits are option characters that take arguments,
-123 will be interpreted as a
-1 option with an argument of
23 (which is fine, you can interpret it from there), but a lone
-1 will cause the next
argv element to get
eaten as an argument to
-1, which is difficult or impossible to recover from.