Получение параметров локальной системы
В книге были рассмотрены некоторые процедуры, сообщающие системные ограничения (например, pathconf). Есть также и другие процедуры, служащие для той же цели:
sysconf | Обеспечивает доступ к конфигурационным параметрам, находящимся в файлах <limits.h> и <unistd.h> | ||
SysInfo | Возвращает информацию о системе | ||
GetHostName | Возвращает имя локального компьютера | ||
uname | Возвращает указатель на структуру utsname, содержащую название операционной системы, имя узла, которое может использоваться системой в сети для установления связи, а также номер версии системы
UNIX | ||
getpwent | Это семейство процедур обеспечивает доступ к данным из файла паролей /etc/passwd. Все следующие вызовы возвращают указатель на структуру passwd, определенную в файле <pwd.h>:
getpwnam(const char *username); getpwuid(uid_t uid); getpwent(void); | ||
getgrent | Это семейство процедур связано с доступом к файлу описания групп /etc/group | ||
getrlimit | Обеспечивает доступ к предельным значениям системных ресурсов, таких как память или доступное дисковое пространство | ||
getlogin
cuserid | Получает имя пользователя для текущего процесса |
Пример использования SysInfo:
Uses Linux;
Function Mb(L : Longint) : longint;
begin
Mb:=L div (1024*1024);
end;
Var Info : TSysInfo;
D,M,Secs,H : longint;
begin
If Not SysInfo(Info) then
Halt(1);
With Info do
begin
D:=Uptime div (3600*24);
UpTime:=UpTime mod (3600*24);
h:=uptime div 3600;
uptime:=uptime mod 3600;
m:=uptime div 60;
secs:=uptime mod 60;
Writeln('Uptime : ',d,'days, ',h,' hours, ',m,' min, ',secs,' s.');
Writeln('Loads : ',Loads[1],'/',Loads[2],'/',Loads[3]);
Writeln('Total Ram : ',Mb(totalram),'Mb.');
Writeln('Free Ram : ',Mb(freeram),'Mb.');
Writeln('Shared Ram : ',Mb(sharedram),'Mb.');
Writeln('Buffer Ram : ',Mb(bufferram),'Mb.');
Writeln('Total Swap : ',Mb(totalswap),'Mb.');
Writeln('Free Swap : ',Mb(freeswap),'Mb.');
end;
end.
Пример использования uname:
Uses linux;
Var UN : utsname;
begin
if Uname (UN) then
With UN do
begin
Writeln ('Name : ',pchar(@sysname[0]));
Writeln ('Nodename : ',pchar(@Nodename[0]));
Writeln ('release : ',pchar(@Release[0]));
Writeln ('Version : ',pchar(@Version[0]));
Writeln ('Machine : ',pchar(@Machine[0]));
Writeln ('Domainname : ',pchar(@domainname[0]));
end;
end.