create_string_bufferで作成されたバッファの使用済みサイズ/長さを確認するにはどうすればよいですか?
buffer = create_string_buffer(1000)
たとえば、バッファには3つの値があり、997は未使用です-> 3つを取得するにはどうすればよいですか?
create_string_bufferで作成されたバッファの使用済みサイズ/長さを確認するにはどうすればよいですか?
buffer = create_string_buffer(1000)
たとえば、バッファには3つの値があり、997は未使用です-> 3つを取得するにはどうすればよいですか?
ただできない理由はありますlen(buffer.value)
か?
それの純粋な理論的な楽しみのために-あなたが上記の方法を使うことができるなら私はこれをする理由がわかりません-私はあなたがまたはすることもできると言及しbuffer.raw.find("\x00")
ますlist(buffer).index("\x00")
。ただし、文字列が適切にnullで終了していない場合、これらは失敗します。
In [1]: from ctypes import *
In [2]: s = create_string_buffer(1000)
In [3]: s[0] = '1'
In [4]: s[1] = '2'
In [5]: s[2] = '3'
In [6]: s
Out[6]: <ctypes.c_char_Array_1000 at 0x8ca126c>
In [7]: for i, c in enumerate(s):
...: if c == '\x00':
...: break
...:
In [8]: i
Out[8]: 3
C文字列はnullで終了するため、「\x00」が見つかるまで文字列をループします。
あなたは出来る: