Скачиваний:
17
Добавлен:
08.01.2014
Размер:
1.35 Кб
Скачать
(* рТПГЕДХТБ filedata ЧЩЧПДЙФ ДБООЩЕ П ЖБКМЕ *)
uses linux;

(*
* нБУУЙЧ octarray ЙУРПМШЪХЕФУС ДМС ПРТЕДЕМЕОЙС
* ХУФБОПЧЛЙ ВЙФПЧ РТБЧ ДПУФХРБ.
*)
const
octarray:array[0..8] of integer= (
0400, 0200, 0100,
0040, 0020, 0010,
0004, 0002, 0001);

(*
* нОЕНПОЙЮЕУЛЙЕ ЛПДЩ ДМС РТБЧ ДПУФХРБ Л ЖБКМХ,
* ДМЙОПК 10 УЙНЧПМПЧ, ЧЛМАЮБС ОХМЕЧПК УЙНЧПМ Ч ЛПОГЕ УФТПЛЙ.
*)
const
perms:pchar = 'rwxrwxrwx';

function filedata(pathname:string):integer;
var
statbuf:tstat;
descrip:array [0..9] of char;
j:integer;
begin
if not fstat (pathname, statbuf) then
begin
writeln('пЫЙВЛБ ЧЩЪПЧБ stat ДМС ', pathname);
filedata:=-1;
exit;
end;

(* рТЕПВТБЪПЧБФШ РТБЧБ ДПУФХРБ Ч ХДПВПЮЙФБЕНХА ЖПТНХ *)
for j:=0 to 8 do
begin
(*
* рТПЧЕТЙФШ, ХУФБОПЧМЕОЩ МЙ РТБЧБ ДПУФХРБ
* РТЙ РПНПЭЙ РПВЙФПЧПЗП й
*)
if (statbuf.mode and octal(octarray[j]))<>0 then
descrip[j] := perms[j]
else
descrip[j] := '-';
end;
descrip[9] := #0; (* ЪБДБФШ УФТПЛХ *)
(* чЩЧЕУФЙ ЙОЖПТНБГЙА П ЖБКМЕ *)
writeln(#10'жБКМ ', pathname, ':');
writeln('тБЪНЕТ ',statbuf.size,' ВБКФ');
writeln('User-id ',statbuf.uid,', Group-id ',statbuf.gid,#10);
writeln('рТБЧБ ДПУФХРБ: ', descrip);
filedata:=0;
end;

begin
if (paramcount > 0) then
filedata(paramstr(1));
end.
Соседние файлы в папке 3