- ベストアンサー
バイナリファイル(画像等)データをオフセットして読み込みたい
タイトル見ただけではなんのこっちゃかもわかりませんが 行いたい事は以下の通りです。 バイナリファイル(画像ファイル)、仮に15Kバイトのサイズだったとします。 それを10Kバイト区切りで読み込みたい。 そして変数$str1,$str2に格納したい。 open(BIN, "< test.gif"); binmode(BIN); #ファイルの先頭から10Kバイト読み込んで変数$str1に代入 sysread(BIN, $str1, 10000); #上記で読み込んだ個所から、残りのデータを読み込みたい #オフセット10Kバイトから5Kバイト読み込む sysread(BIN, $str2, 5000,10000); close(BIN); のような処理でいいのかと思っていたのですが、 $str2には期待通りの形で格納されませんでした。 先頭の10000バイト(オフセットで指定したサイズ)がNULLになっており、 その先から残りのバイナリデータが格納されていました。 自分が行いたいのは、 $str2の先頭から、バイナリファイルのオフセットの値 (ここでは10Kの部分からのこりの5K) を格納したいのです。 この関数ではダメだと思うのですが、 自分の行いたい処理の関数が見当たらず困っております。 どなたかご存知の方、どうぞよろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- tatsu99
- ベストアンサー率52% (391/751)
回答No.4
- tatsu99
- ベストアンサー率52% (391/751)
回答No.3
- natsuki_tk
- ベストアンサー率35% (99/279)
回答No.2
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.1
お礼
丁寧な解説ありがとうございました。 おかげで解決しました。