C 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列ファイルへの入出力) |
(→文字列ファイルへの入出力) |
||
4,902行: | 4,902行: | ||
− | ファイルオープンモードについてですが、r、w、a、rb、wb、ab の他にもr+ のように+記号を付けるパターンがあります。この場合、r+ 既存ファイルに読み込み上書き、w+ 新規ファイルで読み書き、a+ 既存ファイルに読み追記ができます。cをつけるとflush関数による反映ですべての操作が確定しファイルに反映するモードになります。通常はcではないモードのnが規定値になっています。bを指定しない場合も実際はtが規定値として扱われています。他にもディスクにファイルを残さずメモリ上だけでファイルの操作をするためにT(ファイル生成されない)やD(ファイルポインタを閉じると削除されるファイル) | + | ファイルオープンモードについてですが、r、w、a、rb、wb、ab の他にもr+ のように+記号を付けるパターンがあります。この場合、r+ 既存ファイルに読み込み上書き、w+ 新規ファイルで読み書き、a+ 既存ファイルに読み追記ができます。cをつけるとflush関数による反映ですべての操作が確定しファイルに反映するモードになります。通常はcではないモードのnが規定値になっています。bを指定しない場合も実際はtが規定値として扱われています。他にもディスクにファイルを残さずメモリ上だけでファイルの操作をするためにT(ファイル生成されない)やD(ファイルポインタを閉じると削除されるファイル)といった一時ファイル指定もありますし、シーケンシャルアクセス最適化のSにランダムアクセス最適化のR、子プロセスに継承しないNといった非常に難しいコアなオプションもあります。シーケンシャルやランダムアクセスについては記録するディスクの仕組みにもよりますが、通常はシーケンシャルの方が読み取り効率が良いはずですが、ランダムに配置された方が待ち時間が少なくなるというケースもあります。大容量・大量のファイルを扱う場合によく調べて選択するとよいかもしれません。Nは違うプログラム(子プロセス)からファイルポインタを2重に参照させないというようなオプションかと思います。やってみたことないので、具体的な例はここでは示せません。やはり経験が少ないと細かいところまでは説明できないですね。無念。 |