Re: add non-option reordering to in-tree getopt_long
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: nathandbossart@gmail.com
Cc: noah@leadboat.com, michael@paquier.xyz, pgsql-hackers@postgresql.org
Date: 2023-06-15T05:30:34Z
Lists: pgsql-hackers
At Wed, 14 Jun 2023 15:46:08 -0700, Nathan Bossart <nathandbossart@gmail.com> wrote in > On Wed, Jun 14, 2023 at 03:11:54PM -0700, Noah Misch wrote: > > Here's some output from this program (on AIX 7.1, same output when compiled > > 32-bit or 64-bit): > > > > $ ./a.out a b c d e f > > f e d c b a ./a.out > > Thanks again. > > > Interesting discussion here, too: > > https://github.com/libuv/libuv/pull/1187 > > Hm. IIUC modifying the argv pointers on AIX will modify the process title, > which could cause 'ps' to temporarily show duplicate/missing arguments > during option parsing. That doesn't seem too terrible, but if pointer > assignments aren't atomic, maybe 'ps' could be sent off to another part of > memory, which does seem terrible. Hmm, the discussion seems to be based on the assumption that argv[0] can be safely redirected to a different memory location. If that's the case, we can prpbably rearrange the array, even if there's a small window where ps might display a confusing command line, right? regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
Simplify option handling in pg_ctl.
- 03d1080d8a95 17.0 landed
-
Teach in-tree getopt_long() to move non-options to the end of argv.
- 411b72034300 17.0 landed