为了账号安全,请及时绑定邮箱和手机立即绑定

c与python之间传递特殊字符

c与python之间传递特殊字符

慕哥6287543 2018-07-11 13:13:12
各位大侠。我现在有以下使用情况,从C语言传递abc\0xyz给python,从python传递给C语言侧xyz\0abc。就是在c和python之间传递中间有\0的连续字符。如果按字符串传递,会被截断。如何才能保留不被截断呢?谢谢!
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

>>> from ctypes import *
>>> libc=cdll.msvcrt
>>> libc.printf("hello %s\n","world")
hello world
12
>>>

>>> p = create_string_buffer("Hello", 30)
>>> n=libc.sprintf(p,"hello %s\n","world")
>>> n
12
>>> print p
<ctypes.c_char_Array_30 object at 0x02247C10>
>>> dir(p)
['__class__', '__ctypes_from_outparam__', '__delattr__', '__delitem__', '__delsl
ice__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__',
'__getslice__', '__hash__', '__init__', '__len__', '__module__', '__new__', '__r
educe__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__setslice
__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',
'_b_base_', '_b_needsfree_', '_length_', '_objects', '_type_', 'raw', 'value']
>>> p.value
'hello world\n'
>>>


查看完整回答
反对 回复 2018-07-28
  • 1 回答
  • 0 关注
  • 825 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信