gpt4 book ai didi

Python:WindowsError:异常:访问冲突读取 0x00000000

转载 作者:行者123 更新时间:2023-12-03 09:22:04 25 4
gpt4 key购买 nike

这个简短的函数只是获取存储设备的可用空间,但是在运行代码时出现上述错误。

功能是:

def disk_space1(drive):
freespace = ctypes.c_ulonglong()
calcspace = ctypes.windll.kernel32.GetDiskFreeSpaceExA
calcspace(drive, ctypes.byref(freespace))
disk_size = freespace.value
return disk_size

这个功能一直运行得很好,直到今天它无缘无故停止工作,我没有改变任何东西。最让我困惑的是,该函数工作正常,如果我运行它后打印出“freespace”的值,它已经找到了正确的值,但仍然给出错误。

什么可能导致此问题?

最佳答案

您没有调用完整的函数签名,我认为这会导致访问冲突(由于随机内存写入)和错误。完整的函数签名是(完整记录 here ):

BOOL WINAPI GetDiskFreeSpaceEx(
_In_opt_ LPCTSTR lpDirectoryName,
_Out_opt_ PULARGE_INTEGER lpFreeBytesAvailable,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes
);

通过将函数更改为:

def disk_space(drive):
freespace = ctypes.c_ulonglong()
calcspace = ctypes.windll.kernel32.GetDiskFreeSpaceExA
err = calcspace(drive,
ctypes.byref(freespace),
None,
None)
assert err != 0, 'calcspace failed'
disk_size = freespace.value
return disk_size

我能够运行它而不会出现间歇性错误。

关于Python:WindowsError:异常:访问冲突读取 0x00000000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28631078/

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