к конкретной системе. Это связано
Программа ps
сильно привязана к конкретной системе. Это связано с тем, что она напрямую обращается к ядру (через специальный файл, представляющий образ системной памяти) для получения системной таблицы процессов. На системе, использованной при разработке этого примера, команда ps
имеет синтаксис
$ ps -t ttyname
где ttyname является именем специального файла терминала в каталоге /dev, например, tty1, console, pts/8 и др. Выполнение этой команды ps
дает следующий вывод:
PID TTY TIME COMMAND
29 со 0:04 sh
39 со 0:49 vi
42 со 0:00 sh
43 со 0:01 ps
Первый столбец содержит идентификатор процесса. Второй – имя терминала, в данном случае со
соответствует консоли. В третьем столбце выводится суммарное время выполнения процесса. В последнем, четвертом, столбце выводится имя выполняемой программы. Обратите внимание на первую строку, которая является заголовком. В программе unfreeze, текст которой приведен ниже, нам потребуется ее пропустить.
(* Программа unfreeze - освобождение терминала *)
uses stdio,linux,strings;
const
LINESZ =150;
SUCCESS=0;
ERROR =(-1);
const
killflag:integer=0;
(* Инициализация этой переменной зависит от вашей системы *)
pspart:pchar = 'ps t ';
fmt:pchar = '%d %*s %*s %*s %s';
var
comline, inbuf, header, name:array [0..LINESZ-1] of char;
f:pfile;
j:integer;
pid:longint;
begin
if paramcount <2 then
begin
writeln (stderr, 'синтаксис: ',paramstr(0),' терминал программа ...');
halt (1);
end;
(* Сборка командной строки *)
strcopy (comline, pspart);
strcat (comline, argv[1]);
(* Запуск команды ps *)
f := pipeopen (comline, 'r');
if f = nil then
begin
writeln (stderr, paramstr(0),': не могу запустить команду ps ');
halt (2);
end;
(* Получить первую строку от ps и игнорировать ее *)
if fgets (header, LINESZ, f) = nil then
begin
writeln (stderr, paramstr(0),': нет вывода от ps?');
halt (3);
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий