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


Доступ к аргументам, передаваемым при вызове exec - часть 2


uses syslinux;

 

var

  i:integer;

begin

  for i:=1 to argc-1 do

    write(argv[i], ' ');

  writeln;

end.

Если вызвать эту программу в следующем фрагменте кода

const

  argin:array [0..3] of pchar = ('myecho', 'hello', 'world', nil);

execvp(argin[0], argin);

то переменная argc в программе myecho будет иметь значение 3, и в результат на выходе программы получим:

hello world

Тот же самый результат можно получить при помощи команды оболочки:

$ ./myecho hello world

Упражнение 5.4. Напишите программу waitcmd, которая выполняет произвольную команду при изменении файла. Она должна принимать в качестве аргументов командной строки имя контролируемой файла и команду, которая должна выполняться в случае его изменения. Для слежения за файлом можно использовать вызов fstat. Программа не должна расходовать напрасно системные ресурсы, поэтому следует использовать процедуру sleep (представленную в упражнении 2.16), для приостановки выполнения программы waitcmd в течение заданного интервала времени, после того как она проверит файл. Как должна действовать программа, если файл изначально не существует?




- Начало -  - Назад -  - Вперед -



Книжный магазин