Мне нужно сделать несколько основных операций с магнитными лентами на нашем ленточном сервере:
mt stat
в Linux)Я хочу выполнять эти задачи через API/библиотеку в C/C++, но я действительно борюсь с нахождением инструкций/учебников для новичков.
Можете ли вы каким-то образом использовать sg driver, функции от sg3_utils или некоторые из них с помощью ioctl()
?
Ленты обычно представляют собой устройства символов (обычно /dev/st*
, см. St (4) -which перечисляет соответствующие ioctl (2) arguments- и т.д....). Поэтому используйте общие функции чтения (2) и записи (2) (с буфером соответствующего размера, например 128 Кбайт).
Вы можете рассмотреть libtar (для поддержки формата tar
). Вы определенно должны изучить исходный код, например GNU tar (и mt
содержащийся в нем).
Возможно, ваш ленточный сервер имеет свой собственный API или какой-то веб-интерфейс (затем используйте libcurl) или какой-то сетевой протокол.
ioctl()
перечисленные в заголовочном файле linux / mtio.h (на узле устройства). Утилита mt-gnu
вероятно, также интересна; это часть пакета cpio .