常にpermission deniedが出るのであれば、ファイルやフォルダに対するアクセス権がそもそも無いのだと思うのですが、たまにpermission deniedが出るくらいなので、原因が分からず困っています。
これだけだと原因究明に対する情報が足りないようであれば、他にどんな情報があれば良いか教えてください。
情報が少ないので当てずっぽうですが
1) そのファイルを開く処理は一箇所だけですか?
2) 別の処理で一時的にパーミッションを変えるようなコードが入っていませんか?
3) ディスクの空き容量は十分にありますか?
4) サーバー上で,ファイルを開きすぎていませんか?
あたりは確認されましたか?
1)2)については
別の処理でも,そのファイルを読み書きするようになっている場合は
排他処理の代わりに一時的にファイルのパーミッションを変更する方法があります
(実際には,排他処理のつもりで書かれた,排他処理になっていないバグのあるプログラムの場合がほとんどですが)
cronでの別処理とかがあるなら,そのコードもチェックした方がいいとおもいます
3)4) については ディスクがパンクしている場合,システム上でファイルを開きすぎている場合
などに,OSがpermission denied のエラーを出す場合があります
OSの種類も,サーバーの種類もわからないのですが
とりあえず思いついたことを書きました.参考になれば幸いです.
情報が少ないので当てずっぽうですが
1) そのファイルを開く処理は一箇所だけですか?
2) 別の処理で一時的にパーミッションを変えるようなコードが入っていませんか?
3) ディスクの空き容量は十分にありますか?
4) サーバー上で,ファイルを開きすぎていませんか?
あたりは確認されましたか?
1)2)については
別の処理でも,そのファイルを読み書きするようになっている場合は
排他処理の代わりに一時的にファイルのパーミッションを変更する方法があります
(実際には,排他処理のつもりで書かれた,排他処理になっていないバグのあるプログラムの場合がほとんどですが)
cronでの別処理とかがあるなら,そのコードもチェックした方がいいとおもいます
3)4) については ディスクがパンクしている場合,システム上でファイルを開きすぎている場合
などに,OSがpermission denied のエラーを出す場合があります
OSの種類も,サーバーの種類もわからないのですが
とりあえず思いついたことを書きました.参考になれば幸いです.
ありがとうございます。
OSはwindowsになります。
処理は1ヶ所で同じ処理ですが、関数にしてるので、複数の場所から呼ばれる可能性はあります。
ただ、パーミッション周りを変更するようなコードは全く書いてはいないです。
3)は問題なさそうですが、
4)は可能性としてはありそうなのですが、どうやって調べたら良いでしょうか?
>OSはwindowsになります。
・ファイル名が、Windowsで使えない文字、文字列が入ってる
Windowsでは予約デバイス名が入ってるファイル名は使えなかったと思う
・パスの指定が、Windows形式でない
ありがとうございます。
質問にも書いてますが、エラーが出ないことのほうが多いので、上記ではないかとは思います。
(普通は問題なくて、ごくまれにエラーになる感じです。)
ありがとうございます。
2019/01/16 08:42:31OSはwindowsになります。
処理は1ヶ所で同じ処理ですが、関数にしてるので、複数の場所から呼ばれる可能性はあります。
ただ、パーミッション周りを変更するようなコードは全く書いてはいないです。
3)は問題なさそうですが、
4)は可能性としてはありそうなのですが、どうやって調べたら良いでしょうか?