fopen関数についてふと疑問に思ったことがあり、質問させてください。
これ、fopen関数の鉄板ともいうべき使い方だと思うのですが、いろいろなサイトを調べて
回って、第二引数が "r" の時ファイルが見つからなければNULLを、"w"、 "a" なら新規作成する
というところまでわかりました
ということは、第二引数が "w"、 "a" のときはNULL が返されることはないのじゃないか?
と、ふと考えてみたのですが、この辺はどこも詳しく解説してくれるサイトがみつからなかったため、
どなたか教えていただけませんか?
fopen関数について
Re: fopen関数について
自分の環境では、書き込み禁止(読み取り専用)のファイルに"w"でアクセスしようとすると、NULLが返りました。
Windows Vista Home Premium SP2 32ビット
Intel(R) Core(TM)2Duo T8100 @2.10GHz 2.10GHz
RAM 4.00GB
GCC(MinGW) 4.8.1
Windows Vista Home Premium SP2 32ビット
Intel(R) Core(TM)2Duo T8100 @2.10GHz 2.10GHz
RAM 4.00GB
GCC(MinGW) 4.8.1
- 添付ファイル
-
- fopen_w_a.zip
- テスト用データ
- (8.7 KiB) ダウンロード数: 101 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: fopen関数について
fopen はディレクトリを作れないので、fname = "dir/file" の場合、わこう さんが書きました: ということは、第二引数が "w"、 "a" のときはNULL が返されることはないのじゃないか?
"dir" という名前のディレクトリが存在しなければエラーになり、NULL を返します。
fname = "dir/" や fname = "." の場合も、NULL を返します。
ハードディスク(USBメモリでもよい)に空きがない場合も NULL を返します。