Скачиваний:
17
Добавлен:
08.01.2014
Размер:
1.31 Кб
Скачать
(* рТПЗТБННБ showmsg - ЧЩЧПДЙФ ДБООЩЕ ПВ ПЮЕТЕДЙ УППВЭЕОЙК *)
{$mode objfpc}
uses ipc,stdio,sysutils;

procedure mqstat_print(mkey:tkey; msq_id:longint; mstat:pmsqid_ds);
begin
writeln (#$a'лМАЮ ', mkey, ', msg_qid ', msq_id, #$a);
writeln(mstat^.msg_qnum, ' УППВЭЕОЙК Ч ПЮЕТЕДЙ'#$a);

writeln('рПУМЕДОЕЕ УППВЭЕОЙЕ РПУМБОП РТПГЕУУПН ', mstat^.msg_lspid, ' Ч ',
ctime(mstat^.msg_stime));
writeln('рПУМЕДОЕЕ УППВЭЕОЙЕ РТЙОСФП РТПГЕУУПН ', mstat^.msg_lrpid, ' Ч ',
ctime(mstat^.msg_rtime));
end;


var
mkey:tkey;
msq_id:longint;
msq_status:tmsqid_ds;
begin
if paramcount<>1 then
begin
writeln(stderr, 'рТЙНЕОЕОЙЕ: showmsg ЪОБЮЕОЙЕ_ЛМАЮБ');
halt(1);
end;

(* рПМХЮБЕН ЙДЕОФЙЖЙЛБФПТ ПЮЕТЕДЙ УППВЭЕОЙК *)
try
mkey:=tkey(strtoint(paramstr(1)));
except
on e:econverterror do
begin
writeln(stderr, 'оЕЮЙУМПЧПК ЙДЕОФЙЖЙЛБФПТ ПЮЕТЕДЙ УППВЭЕОЙК');
halt (2);
end;
end;

msq_id := msgget(mkey, 0);
if msq_id = -1 then
begin
perror('пЫЙВЛБ ЧЩЪПЧБ msgget');
halt(2);
end;

(* рПМХЮБЕН ЙОЖПТНБГЙА П УФБФХУЕ *)
if not msgctl(msq_id, IPC_STAT, @msq_status) then
begin
perror('пЫЙВЛБ ЧЩЪПЧБ msgctl');
halt(3);
end;

(* чЩЧПДЙН ЙОЖПТНБГЙА П УФБФХУЕ *)
mqstat_print(mkey, msq_id, @msq_status);
halt(0);
end.
Соседние файлы в папке 8