首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: libc fallocate返回失败

Python: libc fallocate返回失败
EN

Stack Overflow用户
提问于 2012-02-23 13:41:41
回答 1查看 971关注 0票数 3

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

代码语言:javascript
复制
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))

但是,我可以在命令行中很好地执行以下操作

代码语言:javascript
复制
hdparm --fallocate 10 ./temp_file_foo

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-23 14:24:28

听起来您使用的是32位系统,其中fallocate系统调用默认情况下接受一个(32位)整数。一些系统在fallocate64中也会有一个64位的对应物,它采用64位的偏移量和长度。试一试吧。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9407792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档