Получить имя текущего пользователя в Linux

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
vay
новенький
Сообщения: 22
Зарегистрирован: 06.07.2009 17:56:46

Получить имя текущего пользователя в Linux

Сообщение vay »

Всем доброго дня. Как получить имя текущего пользователя в Linux аналогично Windows.GetUserName

Спасибо
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

консольная команда - whoami
можно через TProcess.
например:

Код: Выделить всё

user:string;

   S:=TProcess.Create(Nil);
  S.Commandline:='whoami';
  S.Options:=[poUsePipes,poNoConsole];
  S.execute;
  Repeat
    Count:=s.output.read(buf,BufSize);
    // reverse print for fun.
    For I:=1 to count do
      user:=user + buf[i];
  until Count=0;
vay
новенький
Сообщения: 22
Зарегистрирован: 06.07.2009 17:56:46

Сообщение vay »

консоль это одно решение. Запомню. А через вызов метода невозможно? а то консоль, распарсивание результата, много вариантов...
svk12
постоялец
Сообщения: 411
Зарегистрирован: 09.06.2008 18:42:47

Сообщение svk12 »

Код: Выделить всё

function GetEnvironmentVariable(
 
  const EnvVar: String
 
):String;


Под виндой EnvVar:='USERNAME',
по Линухом EnvVar:='LOGNAME'
vay
новенький
Сообщения: 22
Зарегистрирован: 06.07.2009 17:56:46

Сообщение vay »

спасибо
Ответить