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


         

Напишите программу, печатающую свои параметры


 

 );

var

  i:integer;

begin

  for i:=1 to count do

    writeln(mas[i].value,' = ',sysconf(mas[i].name));

end.

 

Упражнение 13.53. Напишите программу, печатающую свои параметры и значение первых десяти переменных окружения.

program Parameters;

uses Dos,Crt;

var

  i:Byte;

begin

  ClrScr;

  if ParamCount>1 then

   begin

    Writeln('Owner parameters:');

    For i:=1 to ParamCount do

      Writeln(Paramstr(i));

   end

  else Writeln('No owner parameters.');

  Writeln('System parameters:');

  if envcount<10 then

    for i := 1 to EnvCount do

      Writeln(EnvStr(i))

  else

    for i := 1 to 10 do

      Writeln(EnvStr(i));

end.

 

Упражнение 13.54. Напишите программу, узнающую у системы и распечатывающую: номер процесса, номер и имя своего владельца, номер группы, название и тип терминала, на котором она работает.

uses linux;

function getnamebyuid(uid:longint):string;

var

  f:text;

  s,name:string;

  n,res:integer;

begin

  assign(f,'/etc/passwd');

  reset(f);

  while not eof(f) do

  begin

    readln(f,s);

    n:=pos(':',s);

    name:=copy(s,1,n-1);

    delete(s,1,n+2);

    n:=pos(':',s);

    delete(s,n,length(s)-n+1);

    val(s,res);

    if uid=res then

    begin

      getnamebyuid:=name;

      exit;

    end;

  end;

  getnamebyuid:='';

end;

var

  pid,uid,gid:longint;

  name,term:string;

  t:termios;

begin

  pid:=getpid;

  uid:=getuid;

  gid:=getgid;

  name:=getnamebyuid(uid);

  term:=getenv('TERM');

  tcgetattr(0,t);

  writeln('Номер процесса - ',pid);

  writeln('Процесс принадлежит пользователю с номером ',uid, ' по имени ',name);

  writeln('Процесс входит в группу ',gid);

  write('Процесс выполняется на ');

  if (t.c_lflag and ICANON)=0 then

    write('не');

  writeln('каноническом терминале ',term);

end.

Упражнение 13.55. Напишите программу, выборочно выводящую значение переменных окружения и устанавливающую новые значения по желанию пользователя.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий