タスクは、1つのファイルエントリ内にサイズの異なる2つのレコードを作成します。 私はテストのためのpython 3.4.5を使用しています:レコードの磁気テープの末尾にLinuxを書き込む
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)
[[email protected] 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
[[email protected] mhvtl]# ^C
は、可変レコード長のテープに新しいレコードを開始しますのioctlオプトコードがあります。 またはこのバグを回避する他の方法?