gpt4 book ai didi

python - 使用 ctypes 将字符串作为 char 指针数组传递

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:40 24 4
gpt4 key购买 nike

我有这个签名的 C 函数:

int fileopen(const char *fname, int flags)

在 Linux 系统中,我想使用 ctypes 从 Python 传递 fname 所以我使用 ctypes.c_char_p("file1.dat") 如下所示:

import ctypes as ctypes

dll_name = "IO/pyaio.so"
dllabspath = os.path.dirname(os.path.abspath(__file__)) + os.path.sep + dll_name
pyaio = ctypes.CDLL(dllabspath)

fd_w = pyaio.fileopen(ctypes.c_char_p("file1.dat"), 1)

但是我得到这个错误:

Traceback (most recent call last):
File "test.py", line 21, in <module>
fd_w = pyaio.fileopen(ctypes.c_char_p("file1.dat"), 1) # 0 read, 1 write
TypeError: bytes or integer address expected instead of str instance

除了使用ctypes.c_char_p,我不知道还有什么方法可以传递字符串"file1.dat"。如何解决这个问题呢?

谢谢

最佳答案

"file1.dat" 更改为 b"file1.dat"(这与使用 'file1.dat'.encode( 'ascii')).

关于python - 使用 ctypes 将字符串作为 char 指针数组传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49971443/

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