-PR-
解決済み

DBファイルが0644になってしまう

  • すぐに回答を!
  • 質問No.59196
  • 閲覧数81
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 53% (7/13)

Linuxで perl5.005_03 + AnyDBM_FileでDBを作ろうとしているのですが、
作成された DBのファイルパーミッションが「0644」になってしまいます。

「0444」だと意味はありませんが正しく設定されます。
「0777」だと「0744」になりました。

以下のようにやっているのですが、何が間違えているのでしょう。
それとも操作に関しての権限が「0666」になるだけで、実際のファイル
パーミッションは後から変更しないといけないのでしょうか?

----------------------------------
use Fcntl;
use Config;
use AnyDBM_File;

$flags = O_CREAT | O_RDWR | &BINARY;
tie( %HASH, AnyDBM_File, dbmfile, $flags,0666 ) || die "Can't open DB\n";
~処理~
untie( %HASH );

sub BINARY{ return O_BINARY if $Config{osname} =~ /^(MS)?Win/; }
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル10

ベストアンサー率 66% (103/155)

umask 033されているような気がします。シェルのプロンプト上で「umask」を実行すると何が表示されますか?
「033」と表示されたのであればperlスクリプトの問題の箇所の前で「umask( 000 );」としてみてください。
お礼コメント
syg

お礼率 53% (7/13)

ありがとうございます。さっそくumaskしてみると結果は「022」でした。

>$umask_old = umask;
>umask(000);
>tie ~;
>umask( $umask_old );

で成功しました!
投稿日時 - 2001-04-04 10:54:34
-PR-
-PR-
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ