Set access and modification time
uses linux;
Function Utime(path:pathstr; utim:utimbuf):Boolean;
Например:
Uses linux;
Var utim : utimbuf;
year,month,day,hour,minute,second : Word;
begin
{ Set access and modification time of executable source }
GetTime (hour,minute,second);
GetDate (year,month,day);
utim.actime:=LocalToEpoch(year,month,day,hour,minute,second);
utim.modtime:=utim.actime;
if not Utime('ex25.pp',utim) then
writeln ('Call to UTime failed !')
else
begin
Write ('Set access and modification times to : ');
Write (Hour:2,':',minute:2,':',second,', ');
Writeln (Day:2,'/',month:2,'/',year:4);
end;
end.
Следующий пример – процедура filedata выводит данные, связанные с файлом, определяемым переменной pathname. Пример сообщает размер файла, идентификатор пользователя, группу файла, а также права доступа к файлу.
Чтобы преобразовать права доступа к файлу в удобочитаемую форму, похожую на результат, выводимый командой ls, был использован массив octarray чисел типа integer, содержащий значения для основных прав доступа, и массив символов perms, содержащий символьные эквиваленты прав доступа.
(* Процедура 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
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий