• 締切済み

ファイルコピーで0x00000005エラー

c++で作ったツールにてファイルコピーを行おうとしています。 explorerからexeを直接実行すると成功しますが、phpからexeを起動するとコピーに失敗する問題が出ています。 GetLastErrorにてエラー理由を調べてみると、下記エラーでした。 0x00000005:アクセスが拒否されました。 権限絡みの問題かと考えているのですが知識不足で、コピー元ファイルへのアクセス権の問題なのか、コピー先フォルダへのアクセス権の問題なのか、どちらもあり得るのか、等々分かりません。 何かご存じの方は教えていただけないでしょうか。 宜しくお願い致します。

  • d_g
  • お礼率88% (22/25)

みんなの回答

回答No.3

あちゃ~ごめんなさい。 今まで、アクセス違反しか出たことがないので おもいっきり見間違えていました。 確かによく見れば先頭が。。。orz 失礼しました。

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.2

0x00000005はアクセス拒否ですね。#1さんは0xC0000005と勘違いされているのでは?0xC0000005ならメモリアクセス違反です。 で、PHP経由で実行するときにexeの実行アカウントが何になっているかチェックされてはどうでしょう? エクスプローラでダブルクリック実行しているときは、特に設定しなければログインアカウントで実行されていますが、PHP経由で実行したときに、現在のアカウントで実行されているとは限らないからです。

d_g
質問者

お礼

回答ありがとうございます。 アカウント名を取得してみたところ、エクスプローラから実行時はwindowsログオン時に入力した通りのアカウント名でしたが、php実行時は"SYSTEM"なるアカウント名でした。 test programを作って確認したところ、コピー先のパスが"c:~"のような場合は正常終了し、IPアドレス等で指定するとそれが自端末であろうと失敗するようです。 してみると、「現在のアカウントの権限ではネットワーク上のマシンへのファイルコピーが許されない」というのが問題のミソかと思うのですが... 自端末はもちろん他端末にもコピーできるようにしなくてはいけないので... セキュリティ的にNGな設定にでもしないことには実現できない気がしてきました。 NGな設定にすれば実現可能かすらも分かりませんけど。 ともあれ一歩前進したように思います。 ありがとうございます。

回答No.1

いってることの意味がまるでわかりませんが、 一般的にアクセス違反は NULLポインタアクセスなど メモリ確保されていないポインタへのアクセス時に発生することが多かったと思います。 デバッガ等を使って そのツール内でアクセスしているファイル名などの ポインタ周りを見直すと直るかもしれませんね。 エクスプローラーで発生しないのはただの偶然だと思います。

d_g
質問者

お礼

回答ありがとうございます。 コーディング上のケアレスミスについては既にチェック済みのつもりですが、再三確認してみます。 コンパイルし直しても現象に変化が無く、アプリケーションエラーのような致命的動作とならないことから不正メモリアクセスによるものではないのではないかと考えています。

関連するQ&A

  • phpからツールを起動する際の権限

    phpからexeを起動するとエラーとなり、権限の問題かと睨んでいるのですが対処法が分かりません。 windows server上でapache2.2.14、PHP5.2.6を使用しています。 phpのexec関数を使用してバックアップツールを起動するとツールがファイルのコピーに失敗して正常終了できません。 phpを使わず、エクスプローラから直にexeを起動すると正常終了します。 ツールはc++で作っており、CopyFile関数にてエラーが発生。 悪戦苦闘中ですが、あれこれいじってみても以下のいずれかのエラーとなり正常終了となりません。 「ネットワーク名が見つかりません。」 「アクセスが拒否されました。」 調べる中で、phpから起動するとapacheユーザの権限で云々といった情報がネットで見つかり、さては権限が怪しいかと思っているのですが、知識不足で何をどうすれば良いのか分かりません。 ダメ元でhttpd.exeのプロパティを開き、「管理者としてこのプログラムを実行する」のチェックボックスをONにしてapacheを再起動してみましたが状況に変化がありませんでした。 問題の原因や対処法、権限の設定についてなど、何か分かることがあれば教えていただけないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ファイルのコピーについて

    $file = './hoge/index.html'; $file_to = './hoge/index2.html'; //コピー成功 ↓ $file_to = './hoge/php/index.html'; //コピー失敗 if(copy($file, $file_to)){ echo "コピーしました。:"; } else{ echo "コピーに失敗しました。:"; } 同じ階層にコピーファイル作成は成功するのですが、 ディレクトリを下げた階層にコピーファイルを作成しようとすると失敗してしまいます。 パーミッションの設定がわるいのか権限がないのか、よくわかりません。 エラー内容 Warning: copy() [function.copy]: SAFE MODE Restriction in effect. The script whose uid is 10124 is not allowed to access 教えて下さい。お願いします。

    • 締切済み
    • PHP
  • vista、ファイルのコピーが出来ない

    C:\Program Files下にあるフォルダにファイルをコピーしたいのですが、 「移動に失敗しました。アクセスが拒否されました。」 と、メッセージが出てどうしようもありません。 コピー出来るファイルと出来ないファイルがあるようなんですが、これはどうすればいいんでしょうか? Cドライブにはコピー出来ないみたいなんですが、Dドライブには出来ます。 これはCドライブの権限?とかを変更したりしなければいけないんでしょうか?

  • ファイルのコピーについて

    ファイルをコピーするときに失敗するときはありますか?(エラー表示がでなかった場合) たとえばファイルを普通にコピーしたのに動画を開くと見れないとか。 ファイルをコピーするときに高速コピーツールを使わずに早くする方法はありますか? 高速コピーツールを使ったときに何か危険性やデメリットはありますか? コピーが失敗する可能性が高いとか、ファイルが破損するとか。

  • BunBackup でのエラーについて

    BunBackup(ファイルコピーツール)でバックアップを行うと、大半のファイルのバックアップは成功するのですが、いくつかのファイルが「アクセスが拒否されました。」となり、コピーができません。 「アクセスが拒否されました。」となる条件、回避方法をご存知の方、教えていただけないでしょうか。 コピーを失敗するファイルは、読み取り専用や256文字以上のパスにはなっていません。 又、バックアップ元、バックアップ先ともUSB-HDDです。 OSはWindows7(64bit)です。

  • マクロファイルコピーで実行時エラー75

    Win10,office2010 マクロで FileCopy "C:\aaa\test.bat", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\test.bat" を実行すると、 実行時エラー75 パス名が無効です というエラーが発生します。 win7のパソコンでは上記マクロで問題なく動作します。 何が問題なのでしょう? Win10でエクスプローラにてコピーすると 対象のフォルダへのアクセスが拒否されました このフォルダへコピーするには権限が必要です。 と表示されながらも”はい”をクリックでコピーは出来ます。 ログイン者はadmin権限です。 なお、 ユーザアカウント制御の設定 通知しない にしています。

  • エラーを無視してコピーするツール

    先日、HDDに不良セクタができ、エラーを出すようになりました。 なので、別のドライブにファイルをコピーしたいのですが、 xcopyでコピーすると、コピー失敗したファイルがわからないです。 コピー完了後、コピー失敗したファイルの一覧を出してくれるような コピーツールはないでしょうか?

  • フォルダツリーのネットワーク上でのコピーツール

    フォルダツリーのネットワーク上でのコピーツール LAN内で ファイルフォルダツリーを まるごと コピー したいのです  ウインドウズ標準のエクスプローラーですと エラーが出て 途中で止まってしまいます  たとえば アクセス権がどうのこうのとか ファイル名が長すぎるとか です  そこで かしこくコピーしてくれる ファイラーを 探しています  フリーソフトで 定番の おすすめがあれば 教えてください  特に気になるのが コピーが 途中で失敗しても 可能な限り コピーを続行してくれることです  失敗しても 未コピーのものだけを 追加で処理してくれると うれしいです  よろしくおねがいします

  • ファイルまたはフオルダのコピーエラー

    CIMG0082をコピーできません、フアイルを格納しているボリュームが外部的に変更されたため、 開かれているファイル無効になりました、 エラー発生 0x00000003    アクセス拒否 0x00000005 などが出ます、 Thumbs     Data baes File 参考は上記です、 カメラよりPCに取り込み、CDに書き込み時に、操作を間違えていると思います、上記エラーを 直す方法を教えてください。よろしく

  • ファイルをコピーしようとしたら「ファイルまたはフォルダのコピーエラー」がでます

    ファイルをコピーしようとしたら「ファイルまたはフォルダのコピーエラー」 fileをコピーできません。アクセスできません。 ディスクがいっぱいでないか、書き込み禁止になってないか、またはファイルが 使用中でないか確認してください。と出ます。 そのフォルダのプロパティを見ると、読み取り専用のところにチェックが付いていて 消してもまた消えません。ファイルをコピー出来るような方法ありますか? あれば教えてください。よろしくお願いします。

専門家に質問してみよう