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