バイナリファイル入出力 ( Binary File Input&Output )
- バイナリデータのファイル入出力は、関数 read()/write() を使用すると便利です。
- 関数 buf,cnt=read(fname,byte) は、指定されたファイル fname より byte バイト分だけデータを読み込み、左辺の第1変数 buf に設定します。また、左辺の第2変数 cnt には、読み込んだバイト数がセットされます。
- 変数 buf の内容へのアクセスは、(バイナリデータである可能性があるため)関数 peek()/poke() を使用します。(通常の文字列関数は、'\0'文字を文字列末と認識します。)
簡易 dump プログラ ( Simple dump program )
コマンドライン引数で指定されたファイル名(省略時は標準入力)の内容を、標準出力へダンプ表示します。
fname=shift(stdin) # 引数をセットします。(デフォルトは stdin ) do_while(cnt!=0){ # {} 内を実行して、cntが 0 でない限りループを繰り返します。 buf,cnt=read(fname,16) # ファイル fname から16バイト読み込み、データとバイト数をセットします。 for(i=0;i<cnt;i++) # 1バイトづつ16進数表示を行います。 printf("%02X ",peek(buf,i)) # 関数 peek() は、バイナリデータ buf 内の i 番目のデータを取り出します。 print("\n") }