Hi,

"Pierre Riteau" <[EMAIL PROTECTED]> wrote: 
> On Jan 16, 2008 10:35 PM, Sebastian Reitenbach
> <[EMAIL PROTECTED]> wrote:
> > 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?
> 
> Define POSIXLY_CORRECT in your Linux program to make it work like on 
OpenBSD ;)
> See the getopt(3) on your Linux system for more details, but
> basically, OpenBSD getopt(3) stops when it encounters the first
> non-option argument, while GNU getopt(3) parses the whole argv array.
> If you really need your "asdf" argument before the option, you can
> parse it and do the argv++, argc-- dance before calling getopt(3).
> Otherwise, just use ./a.out -n asdf.

I haven't written the program, its one of the tools installed with the 
heartbeat port, maybe others that use the options in such a way. I 
recognized it while upgrading. So I cannot easily switch the whole synopsis 
of the parameters of that tool. So I'll have to fiddle around with what you 
suggested. 

Thanks to everyone who answered.
Sebastian

Reply via email to