2016.06.24『チャーリーとチョコレート工場』(2005公開)チョコレートの部屋は子供たちが夢見る素敵な空間です。誰もが皆チョコレートの川は皆泳いでみたいでしょう。私の場合はアメリカナイズなお菓子より、和菓子が好きなのでチョコレートの川とか、ちょっと堪忍。私が苺大福工場の見学に招待されたら、って思うとワクワク(子供の頃なら)します。あずきの川だったらよろこんで......、飛び込みません。川状態のあずきって基本煮えたぎってますし。『チャーリーとチョコレート工場』では、チョコレートのパッキングシーンがオープニングを飾りますが、今回のコマンドラインはバイナリパッキングがテーマです。perlで数値1〜10の各1Byte、計10Byteのバイナリを作成したいとき、このような方法がありますね。簡単にバイナリデータにパッキングできます。数値が1Byte以外、つまり2Byteや4Byteを扱うにはどうするかというと、chrの代わりに、packを使います。桁の変わり目はどうでしょうか。251(0xfb)〜260(0x104)を見てみます。次に、4Byte単位です。pack関数は数をバイナリデータにパッキングします。文字列さきほど作った型指定子は、”S”と”L”でした(“”は省略できます)。C言語のlong型と同じ4Byte1Byteの場合は、chrを使ってましたが、packを使うこともできます。以下はpackを使った遊びです。16Byte毎のバイナリダンプをすることで、メッセージが読めるようになります。上記メッセージですが、このように作れます。バイナリ処理オールFFファイル(その2)今回もアニメを見てません。勤勉にゲームしてます。タイトルから推測するに、きっとファイナルファンタジーではないのか、と思うかもですが、マイクラです。読み込みバッファサイズreadを使った読み込みではバッファサイズを多めにしていたのでfgetcよりも早くファイルが読めました。サイズをいろいろ変えて時間を確認してみます。このプログラムを使います。バイナリ処理openとreadとwriteとcloseを使う前回確認したtruncateソースではopen、closeを直接使ってました。今回はopen、read、write、closeを使ってファイル読み込みをしたいと思います。~で確認しておきます。魔法アニメで特に好きなアニメです。魔法を学問のように扱っている世界観がいいです。勉強ができる優等生は、当然魔法がうまく使えるし、勉強できない下級生はまともに魔法が使えません。バイナリ処理sizeコマンドの仲間たち今回もsizeコマンド。お気に入りのsizeコマンドですが、周辺についても知りたくなりました。sizeコマンドはどのパッケージに含まれるのでしょうか。binutilsのようです。バイナリ処理truncateコマンド今回はtruncateコマンド。truncateの冒頭です。ファイルを指定したサイズにしてくれるコマンドですね。