fopen()のテキストモード、バイナリモード
これらのモード指定はWindowsでfopen()を使用する際に
考慮するものだ。
Linuxでモード指定は必要ない。なぜならばLinuxにおける
「テキストファイルの改行コード」と「プログラム内部の改行コード」が
一致しているからだ。(共に0x0a)
OS | テキストファイルの改行コード | プログラム内部の改行コード |
---|---|---|
Windows | 0x0d0x0a | 0x0a |
Linux | 0x0a | 0x0a |
以下にモードによる挙動の違いを示す。
モード | 内容 |
---|---|
テキストモード | 書込み時 : '\n'(0x0a) ⇒ '\r''\n'(0x0d0x0a)に変換。 読込み時 : '\r''\n'(0x0d0x0a) ⇒ '\n'(0x0a)に変換。 また、0x1aをEOF扱いする。 |
バイナリモード | 書込み、読込み時に上記変換を行わない。 また、0x1aをEOF扱いしない。 |
・参考URL
http://www9.plala.or.jp/sgwr-t/c/sec17.html
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CBEG/cbeg7.html