Hi,

I run into troubles with getopt(3). the test program below shows the 
problem. It produces different output on Linux and OpenBSD, when it is 
called like this on Linux it looks like this:
./a.out asdf -n
option char: 110, n

on OpenBSD, getopt returns -1 and no output is shown.
what would be the best way to make it work on OpenBSD?

cheers
Sebastian

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

extern char *optarg;
extern int opterr;
extern int optind;
extern int optopt;
extern int optreset;

int main (int argc, char **argv)
{
  char *optstr = "mpn";
  int option_char;
  do
  {
    option_char = getopt(argc, argv, optstr);
    if (option_char == -1) {
      break;
    }
    switch (option_char) {
      case 'm':
      case 'p':
      case 'n':
      default:
                printf("option char: %i, %c\n",
                        option_char, option_char);
                break;
     }
  } while (1);

  return 0;
}

Reply via email to