バイナリセーフな関数とは、入力を生のバイトストリームとして扱い、そのテキスト要素をすべて無視する関数です。この用語は主にPHPプログラミング言語において、テキストや文字列の操作を主な役割とする関数にバイナリデータを渡す際に期待される動作を表すために使用され、PHPの公式ドキュメントでも広く使用されています。[1]
バイナリセーフなファイルの読み書き
すべてのテキストデータはバイナリ形式で表現できますが、文字エンコーディングを通じて表現する必要があります。さらに、改行の表現方法はプラットフォームによって異なります。Windows、Linux、macOSは、バイナリ形式での改行の表現方法がそれぞれ異なります。つまり、ファイルをバイナリデータとして読み取り、テキストとして解析してからディスクに書き戻す(つまりバイナリ形式に戻す)と、元のバイナリ表現とは異なる表現になる可能性があります。
ほとんどのプログラミング言語では、ファイルの内容をテキストとして解析するか、バイナリデータとして読み込むかをプログラマーが決定できます。この意図を伝えるために、ファイルをディスクに読み書きする際には、特別なフラグや様々な関数が存在します。例えば、PHP、C、C++プログラミング言語では、開発者はファイルをテキストデータとして解釈するのではなく、バイナリストリームとして読み込むためfopen($filename, "rb")に の代わりにを使用する必要がありますfopen($filename, "r")。これは「バイナリセーフ」モードでの読み込みとも呼ばれます。
参考文献
- ^ "PHP: dirname - マニュアル". it.php.net . 2017年2月21日閲覧。