bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-wget] [bug #54178] wget sometimes returns 1024


From: Dale Worley
Subject: [Bug-wget] [bug #54178] wget sometimes returns 1024
Date: Sat, 30 Jun 2018 22:14:15 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux i686 (x86_64)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2633.3 Safari/537.36

Follow-up Comment #5, bug #54178 (project wget):

Looking at the manual page for system(3) on my system:

RETURN VALUE
       The value returned is -1 on  error  (e.g.,  fork(2)  failed),  and 
the
       return  status  of the command otherwise.  This latter return status
is
       in the format specified in wait(2).  Thus, the exit code of the
command
       will  be  WEXITSTATUS(status).   In case /bin/sh could not be
executed,
       the exit status will be that of a command that does exit(127).

Looking at the manual page for wait(2) on my system:

       WEXITSTATUS(status)
              returns  the  exit  status  of  the child.  This consists of
the
              least significant 8 bits of the status argument that  the 
child
              specified  in  a  call to exit(3) or _exit(2) or as the
argument
              for a return statement in main().  This macro should be
employed
              only if WIFEXITED returned true.

Blindly searching through the system *.h files, it appears that, effectively,

#define WEXITSTATUS(status)   (((status) & 0xff00) >> 8)

This suggests that if you want to print the subprocess's exit status, you need
to change the printf in wget2.c to:

    printf("wget result: %d\n", WEXITSTATUS(result));

The value of result as an integer isn't fixed by the specification of
system(3), only the value of WEXITSTATUS(result).


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?54178>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]