使用我的c ++程序,如何找出运行程序的当前用户所属的组?所以我的程序需要弄清楚几件事:
如何在RedHat / Linux机器上使用c ++进行上述操作?
答案 0 :(得分:5)
getuid(2)
和getgid(2)
。有关详细信息,请参阅credentials(7)
。
使用getpwuid(3)
和getgrgid(3)
作为名称。
答案 1 :(得分:3)
您可以通过getgid()
(真实GID)和getegid()
(有效GID)找到一些信息。对于其他辅助组,您需要使用getgroups()
。
实际上,真实有效的GID通常是相同的,但它是创建文件时使用的有效GID。通常,getgroups()
返回的组列表包括真实组 - 但不清楚它实际上是否必须这样做。
答案 2 :(得分:2)
您使用getuid(2)
和getgid(2)
获取数字用户和组ID,然后使用getpwuid(3)
和getgrgid(3)
在用户/组数据库中查找这些ID把它们变成文本名称。