gpt4 book ai didi

python - 写入磁带记录结束 linux

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:09 25 4
gpt4 key购买 nike

任务是在一个文件条目中创建两条不同大小的记录。我正在使用 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 上,它使用设备上的 block 大小而不是检测它。

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

在最后一次写入后允许 tcopy 按预期显示数据。

关于python - 写入磁带记录结束 linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39980359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com