2015-04-23 33 views
2

我有一些C代码,希望字符缓冲区,看起来像这样:如何在python字符串中表示十六进制值?

char buf[ 64 ]; 
    buf[0] = 0x01; 
    buf[1] = 0x11; 
    buf[2] = 0x61; 
    buf[3] = 0x08; 
    buf[4] = 0x01; 

我想在Python中创建该缓冲区,并将指针传递给C代码。我创建BUF如下,

buf = create_string_buffer('0x01 0x11 0x61 0x08 0x01', 64) 

,但是当我通过指针我的C代码,它看起来像C代码正在读取ASCII码为01,而不是一个十六进制文字。

我该如何解决这个问题?

回答

5

在Python六角文字是由\x

所以在你的情况下,字符串逃过传递到你的C函数将被写成

'\x01\x11\x61\x08\x01' 

有一个表here在Python文档上市python可以理解的转义序列。

相关问题