How do I represent a hex value in a python string?

Question:

I have some code in C that expects char buffer that looks like this:

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

I am trying to create this buffer in Python, and pass the pointer to the C code. I created buf as follows,

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

but when I pass the pointer to my C code, it looks like the C code is reading the ASCII code for 01, not a hex literal.

How do I fix this?

Asked By: usustarr

||

Answers:

In Python hex literals are escaped by x

so in your case the string to pass into your c function would be written as

'x01x11x61x08x01'

There is a table here in the python2 docs listing the escape sequences that python understands (corresponding link for python3).

Answered By: Simon Gibbons
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.