私は次のようにPythonでバッファオブジェクトを作成しました:
f = io.open('some_file', 'rb')
byte_stream = buffer(f.read(4096))
byte_stream
SWIGを介してC関数にパラメーターとして渡しています。次のようなデータを変換するためのタイプマップがあります。
%typemap(in) unsigned char * byte_stream {
PyObject *buf = $input;
//some code to read the contents of buf
}
バグがbyte_streamの実際のコンテンツ/値に到達できないいくつかの異なることを試しました。byte_stream
C APIを使用してコンテンツを変換またはアクセスするにはどうすればよいですか?Cデータをバッファに変換する方法はたくさんありますが、逆の方法で見つけることはできません。このオブジェクトをgcbで調べてみましたが、どちらも、またはデータが含まれていることを示す値もありません。
(ファイルからデータを読み取るときにデータを文字列に変換するオーバーヘッドを回避したいので、バッファーを使用しています)Linuxでpython2.6を使用しています。
--ありがとうPavel