写磁带结束记录linux



任务是在一个文件条目中创建两个不同大小的记录。我使用python 3.4.5进行测试:

import fcntl
import os
import struct
MTIOCTOP = 0x40086d01  # refer to mtio.h
MTSETBLK = 20
fh = os.open('/dev/st2', os.O_WRONLY )
fcntl.ioctl(fh, MTIOCTOP, struct.pack('hi', MTSETBLK, 1024))
os.write(fh, b'a'*1024)
fcntl.ioctl(fh, MTIOCTOP, struct.pack('hi', MTSETBLK, 2048))
os.write(fh, b'b'*2048)
os.close(fh)

[root@dev2 mhvtl]# tcopy /dev/st2
file 0: block size 4096: 1 records
file 0: eof after 1 records: 4096 bytes <<< should be 2 records
eot
total length: 4096 bytes
[root@dev2 mhvtl]# ^C

是否有一个ioctl opt代码将在磁带上初始化一个具有可变记录长度的新记录。或者有其他方法来解决这个问题吗?

问题是tcopy,它使用设备上的块大小而不是检测它。

fcntl.ioctl(fh, MTIOCTOP, struct.pack('hi', MTSETBLK, 0))

commands.getstatus('mt -f /dev/st2 fsf')

相关内容

  • 没有找到相关文章

最新更新