gpt4 book ai didi

c - 打印您是否具有 C 中的所有者、组或一般权限

转载 作者:行者123 更新时间:2023-11-30 16:48:57 27 4
gpt4 key购买 nike

我正在开发一个涉及 Unix 的项目,我们必须用 C 语言编写代码。所以这个项目涉及在 C 语言中 fork 和执行多个文件。我遇到的问题是如何判断你是否有所有者执行文件时的 、组或一般权限。输出应如下所示。

File: .. 
Directory: /root
You have general permissions: read execute

File: Lab3.c
Directory: /home/users15/sew25545
You have owner permissions: read write execute

我已经完成了文件和目录部分,所以不用担心。现在,“您拥有一般权限:”的部分是我挣扎的地方。我发现你对所有者、组和用户的读取、执行和写入权限是这样完成的..

    fileMode = fileattrib.st_mode;
/* Check owner permissions */
if ((fileMode & S_IRUSR) && (fileMode & S_IREAD))
printf("Has Owner Read Permission");
etc...

所以我获得所有权限都没有问题,但是我如何判断他们是否具有一般权限、组权限或所有者权限。我的老师说除了 st_mode 之外还有一个不同的 stat 函数来比较文件的所有者和当前登录用户的所有者,以及比较文件的组和登录用户的组。

感谢任何帮助,谢谢!

最佳答案

stat 结构中的 st_uid 和 st_gid 字段提供文件的所有者和组;将它们与当前登录用户的值进行比较。您可以使用 getuid() 和 getgid() 来获取它们。

关于c - 打印您是否具有 C 中的所有者、组或一般权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42779949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com