Обнаружьте в C при выводе к терминалу

Сборка мусора переоценена

Многие считают, что сборка мусора в Java - одно из самых больших улучшений по сравнению с C ++. Я считаю, что введение в лучшем случае очень незначительное, хорошо написанный код C ++ выполняет все управление памятью в нужных местах (с помощью таких методов, как RAII), поэтому сборщик мусора не требуется.

21
задан Community 23 May 2017 в 12:26
поделиться

2 ответа

Используйте isatty () :

$ man isatty
ISATTY(3)                  Linux Programmer's Manual                 ISATTY(3)

NAME
       isatty - does this descriptor refer to a terminal

SYNOPSIS
       #include <unistd.h>

       int isatty(int desc);

DESCRIPTION
       returns  1  if  desc is an open file descriptor connected to a terminal
       and 0 otherwise.

Поскольку stdout всегда является дескриптором файла 1, вы можете сделать:

if(isatty(1))
    // stdout is a terminal
41
ответ дан 29 November 2019 в 20:17
поделиться
if (isatty (1))
    fprintf (stdout, "Outputting to a terminal.");
else
    fprintf (stdout, "Not outputting to a terminal.");
5
ответ дан 29 November 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: