gpt4 book ai didi

python - 如何在 ctypes 中取消引用 void*?

转载 作者:太空狗 更新时间:2023-10-29 11:13:08 25 4
gpt4 key购买 nike

考虑以下代码:

import ctypes

IPC_PRIVATE, MAP_SIZE, IPC_CREAT, IPC_EXCL = 0, 65536, 512, 1024

shmget = ctypes.cdll.LoadLibrary("libc.so.6").shmget
shmat = ctypes.cdll.LoadLibrary("libc.so.6").shmat

shm_id = shmget(IPC_PRIVATE, MAP_SIZE, IPC_CREAT | IPC_EXCL | 0600)
trace_bits = shmat(shm_id, 0, 0)
s = ctypes.string_at(ctypes.c_void_p(trace_bits), 1)
print(s[0])

当我尝试运行它时,它在成功运行 shmat 后给我一个“段错误”。我做错了什么?

最佳答案

默认情况下,所有像这样包装的ctypes 函数都有restype == c_int。所以你需要在调用它之前正确设置它。 argtypes 也是如此。

关于python - 如何在 ctypes 中取消引用 void*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854815/

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