gpt4 book ai didi

Python:libc fallocate 返回失败

转载 作者:行者123 更新时间:2023-11-28 16:49:28 25 4
gpt4 key购买 nike

我正在尝试 fallocate 一个临时文件,但不幸的是,以下代码返回 -1(失败):

import ctypes, tempfile
from ctypes import *

t_file=tempfile.NamedTemporaryFile(delete=True, dir=".", prefix="temp_file_")

libc=cdll.LoadLibrary("libc.so.6")
libc.fallocate(t_file.fileno(), c_int(0), c_longlong(0), c_longlong(102400))

但是,我可以通过命令行执行以下操作

hdparm --fallocate 10 ./temp_file_foo

应该做同样的事情。如果重要的话,这是在 ext4 文件系统上完成的。

我有一个单独的问题是 libc.fallocate 是否将零写入磁盘,或者它是否将 block 标记为未初始化?

最佳答案

听起来像是在 32 位系统上,fallocate 系统调用默认采用(32 位)整数。一些系统还将在 fallocate64 中有一个 64 位对应物,它采用 64 位偏移量和长度。试试看。

请注意,原生 64 位系统只有 fallocate,但它需要 64 位参数。

关于Python:libc fallocate 返回失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407792/

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