[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: getloadavg and errno
From: |
Jim Meyering |
Subject: |
Re: getloadavg and errno |
Date: |
Tue, 15 Feb 2011 12:25:27 +0100 |
Bruno Haible wrote:
> Hi Paul, Jim,
>
>> + errno = 0; /* Don't be misled if it doesn't set errno.
>> */
>> + loads = getloadavg (avg, 3);
>> + if (loads == -1)
>> + {
>> + perror ("Skipping test; load average not supported");
>> + return 77;
>> + }
>
> This assignment to errno, followed by the use of errno when getloadavg()
> failed, brings up a question: Is getloadavg() supposed to set errno when it
> fails or not?
>
> The specification in lib/getloadavg.c indicates that "no":
>
> /* Put the 1 minute, 5 minute and 15 minute load averages
> into the first NELEM elements of LOADAVG.
> Return the number written (never more than 3, but may be less than
> NELEM),
> or -1 if an error occurred. */
>
> In this case the test should use fputs, not perror.
>
> Or if the answer is "yes", then the specification should say so, and the
> assignment to errno in the test should be removed.
Hi Bruno,
Specifying that errno may be changed sounds better, even though
coreutils' sole use in uptime.c does not use that. For example,
if an open or read attempt fails with EIO, the caller should be
able to report that (or at least to distinguish between that
failure and lack of support), even if there is no way to include
the name of the affected file.
Re: getloadavg and errno, Bruno Haible, 2011/02/15
- Re: getloadavg and errno,
Jim Meyering <=
Re: getloadavg on Solaris 2.6, Bruno Haible, 2011/02/17
Re: getloadavg on IRIX, Bruno Haible, 2011/02/17
Re: getloadavg and platforms, Bruno Haible, 2011/02/17