Date:        Mon, 23 Oct 2023 18:37:40 -0700
    From:        "enh via austin-group-l at The Open Group" 
<austin-group-l@opengroup.org>
    Message-ID:  
<CAJgzZop3cx2iji0aUVWpjz7BPp-JVNAEiSsVR-==mfpg9gd...@mail.gmail.com>

  | i'm assuming the intention here was "you're not a POSIX system without
  | a shell, so it's not possible for system(NULL) to fail to report that
  | a command processor is available" ... but is that true? what does
  | "available" mean?

POSIX requires that there be a shell which can execute commands.  If there
isn't one, it isn't a POSIX conforming environment.   That doesn't mean
that the environment is useless, or that it cannot still be very similar to
a POSIX environment when that makes sense - but does mean that arbitrary
applications cannot assume that what POSIX says will work will always work.

Beyond that there is nothing more the standard can, or should, say.

It would be ludicrous for the standard to attempt to say how an implementation
should indicate it is non-conforming, as an implementation that conforms needs
no such method, and one that doesn't is non-conforming, and so would not have
any particular reason to implement such a method (the standard is essentially
irrelevant, one either conforms or does not).

If implementations like to agree upon some common method that applications
can use to check for specific (common) non-conformance issues, that's fine,
and they can do that - but nothing about that is rational in the standard.

Nor is it really appropriate to discuss here how to do that, this list is
concerned with what happens (or should happen) in conforming environments.

If you want to suggest changing the standard so some requirement is no longer
required, that's fine, you can do that, but that's about the limit.   That is
here, if you wanted to suggest that to be conforming no shell should be
needed, you could ask for that change (but not probably expect it to be
accepted, is my guess) - but if you accept that a shell is needed for a
posix conforming system, there's no point asking for a standard way to
say "in the current environment there is no shell".

kre

  • system(NULL) overly r... enh via austin-group-l at The Open Group
    • Re: system(NULL)... Oğuz via austin-group-l at The Open Group
      • Re: system(N... Jonathan Wakely via austin-group-l at The Open Group
        • Re: syst... Oğuz via austin-group-l at The Open Group
          • Re: ... Gabriel Ravier via austin-group-l at The Open Group
            • ... enh via austin-group-l at The Open Group
              • ... Gabriel Ravier via austin-group-l at The Open Group
            • ... Oğuz via austin-group-l at The Open Group
              • ... Gabriel Ravier via austin-group-l at The Open Group
                • ... Oğuz via austin-group-l at The Open Group
    • Re: system(NULL)... Robert Elz via austin-group-l at The Open Group

Reply via email to