小编Joa*_*nte的帖子

为什么模式为 1755 的 mkfifo 不向用户授予读取权限和粘滞位?

我正在创建一个服务器和客户端情况,我想在其中创建一个管道,以便他们可以进行通信。

我在服务器代码中创建了管道 mkfifo("fifo",1755);

  • 1 只有创建的用户和 root 才能删除或重命名它,
  • 7 为用户提供读取、写入和执行权限,以及
  • 5 组和其他组只给他们读和执行。

问题是,稍后在服务器代码中,我打开了 fifo 以从中读取,open("fifo",O_RDONLY);但是当我执行它时,它向我显示了一个拒绝我访问 fifo 的错误。

我去看了管道fifo的权限,它是p-wx--s--t这样说的 :

  • p 代表管道,
  • -表示用户没有阅读。我不知道当我用 7 给它的时候,
  • s组执行有用户。我不知道如果我给了 1 那么它应该给用户和其他人只读取和执行的能力,而其他人没有预期的能力。

我对权限有误解吗?

c permissions mkfifo

6
推荐指数
1
解决办法
1176
查看次数

标签 统计

c ×1

mkfifo ×1

permissions ×1