[pacman-dev] [PATCH] Use fileno() in isatty() call

Dan McGee dpmcgee at gmail.com
Thu Jan 12 09:08:14 EST 2012


On Thu, Jan 12, 2012 at 7:54 AM, Jan Steffens <jan.steffens at gmail.com> wrote:
> On Thu, Jan 12, 2012 at 2:47 PM, Dan McGee <dan at archlinux.org> wrote:
>> This was our only use of the function that had a hardcoded file
>> descriptor.
>>
>> Signed-off-by: Dan McGee <dan at archlinux.org>
>> ---
>>  src/pacman/pacman.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
>> index 326664d..bce73d2 100644
>> --- a/src/pacman/pacman.c
>> +++ b/src/pacman/pacman.c
>> @@ -801,7 +801,7 @@ int main(int argc, char *argv[])
>>        config = config_new();
>>
>>        /* disable progressbar if the output is redirected */
>> -       if(!isatty(1)) {
>> +       if(!isatty(fileno(stdout))) {
>>                config->noprogressbar = 1;
>>        }
>>
>> --
>> 1.7.8.3
>>
>>
>
> unistd.h contains #define STDOUT_FILENO 1
> Isn't that portable? see  man 3p stdout

I will counter with `man 3 stdout`, namely the last bit. :)

       On program startup, the integer file descriptors  associated  with  the
       streams  stdin,  stdout, and stderr are 0, 1, and 2, respectively.  The
       preprocessor symbols STDIN_FILENO, STDOUT_FILENO, and STDERR_FILENO are
       defined  with  these values in <unistd.h>.  (Applying freopen(3) to one
       of these streams can change the file descriptor number associated  with
       the stream.)

-Dan


More information about the pacman-dev mailing list