如何通过c ++找出当前用户所属的组?

时间:2010-03-13 03:13:16

标签: c++ c linux

使用我的c ++程序,如何找出运行程序的当前用户所属的组?所以我的程序需要弄清楚几件事:

  1. 用户的当前用户名
  2. 用户所属的群组
  3. 如何在RedHat / Linux机器上使用c ++进行上述操作?

3 个答案:

答案 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把它们变成文本名称。