- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:NET::SFTP::FOREIGNについて)
NET::SFTP::FOREIGNに関するファイルパーミッションの変更方法は?
このQ&Aのポイント
- NET::SFTP::FOREIGNを使用してファイルのパーミッションを変更しようとすると、意図したパーミッションに変更されず、問題が起きます。
- 例えば、Perlのフォームデータから送られてきたパーミッションの数値が755の場合、実際には0363に変更されます。
- 直接数値で変更する場合は正常に変更できますが、フォームデータからの変更では何が原因かわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
sftp->chmod("ファイル名", 493); で0755になるようなら、さっきの8進数が10進数で認識されている。 と思ってよいかと。 493(10)は0755(8)なので。
その他の回答 (1)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
回答No.1
その言語を触ったことがないのですが。 進数問題と思われます。 "0755"は値として0755(8)なんですが。 755(10)だと、1363(8)になるので、この363が突破口に感じます。 だとすれば推測として、先頭の"0"がわたっていない可能性がありそうです。 超適当な回答になりますが、 これの、先頭に"0"を付けたらどうなりますか? (数字の0ではなく、文字の0) "0" + $FORM{'chmod'} この言語をわかっていませんが、何となく$FORMがINTと処理され 先頭の0がなくなっているのではないか?と 想像はしましたが、どうでしょうか?
質問者
補足
文字のOですと、変更すら起きません。
お礼
受け取ったデータの先頭に0つけて10進数にしたら解決しました。 ありがとうございます。