- 締切済み
ファイルのリサイズ(縮小)
fopen(..., "rb+") で開いたファイルのサイズを縮小したいのですが、どうすればよいでしょうか? 普段fopen()のモードで "r" と "w" ばかり用いていたため、読み書き用オープンをした場合にファイル中の末端部分をどう切り落とせばよいかわかりません。 初歩的な質問だとは思いますがそれらしい関数も見付からず困っています。 どなたかアドバイスをお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
回答No.1
リサイズ? ファイルの末端部分を削除する事は可能でしょうが、通常のファイルとしては開けなくなる可能性もありますが(テキストファイルなら開けるでしょうが、当然情報料が途中で切れます)。 単にファイルの末端を切り落とすなら、読込んだファイルを切り落としたいところまで保存するだけです(それに意味があるかどうかは分かりません)。 画像のリサイズ(縮小)ならGDライブラリ(イメージ関数)等を使う必要があります。 http://jp2.php.net/gd
お礼
すみません。 質問のしかたが悪かったかもしれません。 fopen(,"rb+")で開いて読み書きを行い、その際に必要に応じてファイルの末端部分を切り落としたいのですが、扱うバイナリのサイズが非常に大きいためfopen(,"w")で先頭から要らない部分まで毎回書き込むことを避けたいのです。
補足
お礼の補足ですが、 Cのchsize() http://forums.belution.com/ja/vc/000/081/54.shtml http://phys.cool.ne.jp/physjpn/bccwinc/chsize.htm をphpでしたいという質問になります。 ただ上記URLにある通りchsize()自体ANSIにはない関数のようなので、phpでこのような動作を望むのは難しいかもしれませんね。