пытаемся преобразовать имя элемента катлога
elem:=readdir(d); (*попытка чтения элемента каталога*)
while elem<>nil do (*пока не достигнут конец каталога*)
begin
(* пытаемся преобразовать имя элемента катлога в число*)
val(strpas(elem^.name),number,coder);
(*если это удается, катлог имеет числовое имя и соответствует процессу*)
if coder=0 then
begin
(*формируем путь к файлу status в виде /proc/номер_процесса/fd *)
strcopy(fullpath,'/proc/');
strcat(fullpath,elem^.name);
strcat(fullpath,'/fd');
d1:=opendir(fullpath);
if d1=nil then
writeln('Для процесса ',number,' информация об открытых файлах недоступна')
else
begin
writeln('Процесс ',number,' открыл следующие файлы:');
elem1:=readdir(d1); (*попытка чтения элемента каталога*)
while elem1<>nil do (*пока не достигнут конец каталога*)
begin
strcopy(fullpath1,fullpath);
strcat(fullpath1,'/');
strcat(fullpath1,elem1^.name);
if (strcomp(elem1^.name,'.')<>0) and (strcomp(elem1^.name,'..')<>0) then
begin
(*realname[readlink(realname,fullpath1,999)]:=#0;*)
writeln(#9,readlink(strpas(fullpath1)));
end;
elem1:=readdir(d1); (*попытка чтения элемента каталога*)
end;
end;
end;
elem:=readdir(d); (*попытка чтения элемента каталога*)
end;
closedir(d); (*закрытие открытого opendir каталога*)
end.
Упражнение 13.38. Используя файловую систему /proc, получите информацию о типе, версии и дате выпуска операционной системы.
uses sysutils,crt,linux;
var
f:text;
count:integer;
ch:char;
begin
assign(f,'/proc/version');
reset(f);
if IOResult<>0 then
begin
writeln('Неудалось открыть файл, попробуйте другими средствами');
halt;
end;
textcolor(7);
write('Тип операционной системы - ');
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий