如何使用C / C ++中的磁带进行操作?

时间:2014-07-07 16:16:42

标签: c++ c linux data-storage

我需要在磁带服务器上使用磁带进行一些基本操作:

  • 加载磁带
  • 显示统计信息(相当于Linux中的mt stat命令)
  • 将数据读/写到磁带块

我想通过C / C ++中的API /库来执行这些任务,但我真的很难为初学者找到指令/教程。

你能以某种方式使用 sg 驱动程序, sg3_utils 中的函数或使用ioctl()进行一些玩法吗?

1 个答案:

答案 0 :(得分:5)

磁带通常是字符设备(通常为/dev/st*,请参阅st(4) - 其中列出了相关的ioctl(2)参数等等。因此,请使用常见的read(2)write(2)系统调用(使用适当大小的缓冲区,例如128K字节)。

您可以考虑libtar(支持tar格式)。你绝对应该研究例如, GNU tar(以及其中包含mt)。

也许您的磁带服务器有自己的API或某些Web界面(然后使用libcurl)或某些网络协议。