Системное программирование в UNIX средствами Free Pascal


           

пытаемся преобразовать имя элемента катлога


  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
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий