Chet Ramey <chet.ra...@case.edu> writes:
> On 5/26/22 2:27 PM, AA via Bug reports for the GNU Bourne Again SHell wrote:
>> When a user attempts to execute an executable that is not 
>> recognized as an executable by the system, the generated error is "No such 
>> file or directory"
>
> In this case, it's the errno value returned from execve(2), and it's
> exactly correct, at least from the kernel's perspective.
>
> It's not that the executable isn't recognized or in an invalid format, in
> which case execve would return ENOEXEC. It's that the ELF header specifies
> a particular interpreter to run on the file (e.g., ld.so), and that file is
> the one that is not found (ENOENT).

This parallels the annoying Unixism that if you attempt to execute a
file that is marked executable that has a #! interpreter specification,
but the specified interpreter does not exist, the generated error is "No
such file or directory".  It would be nice if the kernel generated a
separate errno for "a supporting executable for this executable file
does not exist" but nobody's bothered to do that.

Dale

  • Unfortunate er... AA via Bug reports for the GNU Bourne Again SHell
    • Re: Unfor... Chet Ramey
      • Re: U... Dale R. Worley
        • R... AA via Bug reports for the GNU Bourne Again SHell
          • ... Dale R. Worley
            • ... Andrew Athan via Bug reports for the GNU Bourne Again SHell
              • ... Chet Ramey
          • ... Martin D Kealey
            • ... Andrew Athan via Bug reports for the GNU Bourne Again SHell
              • ... AA via Bug reports for the GNU Bourne Again SHell
                • ... Chet Ramey
                • ... AA via Bug reports for the GNU Bourne Again SHell
            • ... Chet Ramey

Reply via email to