質問: access関数を説明できる方いますか? c言語に、ファイルの存在の有無を確認できる accessという関数があったと思うのですが 使用するヘッダファイルや引数、戻り値などを 説明できる方いらっしゃいましたらどうかお願いします。 accessを使用したらr_ok,f_okとかいうマクロが 必要になったと思うのですが・・・
回答: それから、補足ですが、stat() を使うか、access() を使うかは、 用途が違うと考えてください。「ファイルの存在の有無を確認」の 意味によって、どちらを使うかが決まります。 本当に、存在するかどうかだけで以降の処理が決まるなら、stat() を使うのがいいでしょう。ただし、シンボリックリンクとしてだけ 存在して、その先がなくてもいいなら、lstat() がいいかもしれま せん。 それを読めるかどうか、書けるかどうかが重要な場合は access() を使うべきです。しかし、単に読めるかどうか、書けるかどうかだ けじゃなくてそれがファイルなのか、ディレクトリなのか、シンボ リックリンクなのか、といった様々な可能性もチェックして正しい 処理をしたいという場合には、stat(), lstat() も併用する必要が あります。 さらに、stat() してから、次のアクションを起こすまでに、誰か がファイルを消したり、パーミションを落としたりしたら、どうし たらいいかまで考えはじめると、きりがないですが...。