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

       

Структура tstat


Структура tstat, которую уже была обсуждена в главе 3, позволяет хранить ин формацию о файле устройства в двух полях:

mode

В случае файла устройства это поле содержит права доступа к файлу, к которым прибавлено восьмеричное значение 060000 для блочных устройств или 020000 для символьных устройств. В модуле linux определены константы STAT_IFBLK и STAT_IFCHR, которые могут использоваться вместо этих чисел

rdev

Это поле содержит старший и младший номера устройства

Можно вывести эту информацию при помощи команды ls с параметром -l, например:

$ ls -l /dev/tty3

crw--w--w-  1 ben other 8,3 Sep 13  10:19 /dev/tty3

Обратите внимание на символ с в первой строке вывода, что говорит о том, что /dev/tty3 является символьным устройством. Значения 8 и 3 представляют старший и младший номера устройства соответственно.

Можно получить в программе значение поля mode при помощи методики, введенной в упражнении 4.2:

if S_ISCHR(buf.mode) then

  writeln('Символьное устройство')

else

  writeln('He символьное устройство');

S_ISCHR – это макрос, определенный в модуле linux.



Содержание раздела