私のCプログラムの次の行は、すべて/グループ/所有者に読み取りおよび書き込み権限を提供する必要があります
mkfifo("/tmp/dumbPipe", 0666)
しかし、コードを実行して、書き込みビット以外の許可が設定されていることを確認すると、次のようになります。
prw-r--r--
所有者は同じですが、tmpディレクトリにパイプを作成しているので問題がありますか?cmd行からchmod666を実行すると、すべての権限が正しく設定されます。
私のCプログラムの次の行は、すべて/グループ/所有者に読み取りおよび書き込み権限を提供する必要があります
mkfifo("/tmp/dumbPipe", 0666)
しかし、コードを実行して、書き込みビット以外の許可が設定されていることを確認すると、次のようになります。
prw-r--r--
所有者は同じですが、tmpディレクトリにパイプを作成しているので問題がありますか?cmd行からchmod666を実行すると、すべての権限が正しく設定されます。
これはコメントなしの投稿であり、マニュアルを引用しているだけです。簡潔さなど
男3mkfifoからの引用:
これは、通常の方法でプロセスのumaskによって変更されます。作成されたファイルのパーミッションは(mode&〜umask)です。
男2umaskからの引用
プロセスumaskの一般的なデフォルト値はS_IWGRP|です。S_IWOTH(8進数022)。open(2)のmode引数が次のように指定されている通常の場合:
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH (octal 0666) when creating a new file, the permissions on the resulting file will be: S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH (because 0666 & ~022 = 0644; i.e., rw-r--r--).