• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CGI/Perlで作成したプログラムがありまして、今回、ホスティング先)

CGI/Perlで作成したプログラムのホスティング先をWindowsサーバに移行した際のファイルオープンエラーについて

このQ&Aのポイント
  • CGI/Perlで作成したプログラムをWindowsサーバに移行した際に、ファイルオープンエラーが発生しています。
  • ファイルの更新権限に関する問題の可能性があります。
  • WindowsサーバではUNIX系とは異なり、フォルダーのパーミッション設定が存在しないため、解決方法がわかりません。アドバイスをお待ちしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

>open(IN,">temp1.txt") || &error("Can't open $file");  上書き専用モードで開くと、だめだが入力用で開くと開けるということですね。 INというファイルハンドルをつけているということは、 open(IN,">temp1.txt"); とちょっと変・・ではあるけど、IN だろうがOUTだろうがファイルハンドルにすぎないのでかまいませんが、 他のオプションでは? open IN,"textA.txt" or die "open IN 失敗 :$!"; open OUT,"textB.txt" or die "open OUT 失敗 :$!"; while($input = <IN>){ print OUT $input; } close IN; close OUT; をためしてみ。  

WATAYANOBORU
質問者

お礼

情報ありがとうございます。ホスティング提供者のツールで、UNIXのパーミッション相当を設定するものが見つかりまして、そのツールでR権限を該当フォルダーに付与したところ、動くようになりました。 ありがとうございました。

その他の回答 (1)

  • seastar3
  • ベストアンサー率69% (99/142)
回答No.1

ウインドウズビスタ以降では、フォルダのプロパティに[セキュリティ]タブがあります。 そのフォルダごとに利用者および利用グループの権限が細かく設定できるようになっているので、Administratorまたはuserまたはeveryoneまたは管理者グループまたは利用グループに権限設定し再起動して動作を確かめていくと動くかもしれません。 また質問内容中の">temp1.txt"の部分はリダイレクト操作に見えますが、フォルダの指定のつもりなのかもしれないと考えました。つまり、フォルダの指定だったら、"./temp1.txt"が目的のファイル位置指定になります。

WATAYANOBORU
質問者

お礼

情報ありがとうございます。ホスティング提供者のツールで、UNIXのパーミッション相当を設定するものが見つかりまして、そのツールでR権限を該当フォルダーに付与したところ、動くようになりました。 ありがとうございました。

関連するQ&A