пятница, 11 февраля 2011 г.

Определяем наличие перенаправления stdout во Free Pascal

Небольшое дополнение к давнему посту про определение того же самого в Bash и Ruby. Собственно, ограничусь кодом:

{$mode objfpc}{$h+}

uses
  BaseUNIX;

var
  info : Stat;

begin
 FpFStat(stdout, info);
 if (info.st_mode and S_IFCHR) <> 0
    then WriteLn('Test stdout console: '#27'[1mYES'#27'[0m.')
    else WriteLn('Test stdout console: no.');
end.

Точно работает под Linux, также должно работать под FreeBSD и MacOS X. Виндовый аналог искать лень.