C++ 如何获得用户';c+中的s组列表+;跨平台?

C++ 如何获得用户';c+中的s组列表+;跨平台?,c++,C++,看起来不同的Unix操作系统没有遵循任何标准方法来获取用户组。GNU使用getgrouplist,aix使用getgrset。我会在HPUX、Solaris或Mac上使用什么 编辑: 我希望能够传递一个用户名,并获得一个组列表。因此,getgroups无法工作(因为它只提供调用进程uid的组)。您可以查看/etc/group并搜索用户的用户名。该组将位于冒号之前的行的开头 例如: wheel:x:10:username 有一个命令将当前用户的组输出到stdout。你可以运行它 运行groups

看起来不同的Unix操作系统没有遵循任何标准方法来获取用户组。GNU使用getgrouplist,aix使用getgrset。我会在HPUX、Solaris或Mac上使用什么

编辑:
我希望能够传递一个用户名,并获得一个组列表。因此,getgroups无法工作(因为它只提供调用进程uid的组)。

您可以查看/etc/group并搜索用户的用户名。该组将位于冒号之前的行的开头

例如:

wheel:x:10:username
有一个命令将当前用户的组输出到stdout。你可以运行它


运行
groups
并查看其输出。

我不想重新实现getgrouplist功能,但我想如果必须的话,我会重新实现。仅供参考,这在Mac上无论如何都不起作用(没有/etc/group)。如果您着手解析组文件(无论它在哪里)不管怎样,你可以直接使用在POSIX中的<代码> GGGRONT//COD>。我只使用GGRGETH遍历组,并实现了自己的GETGROUP PLIST。我在C++中寻找正确的方法,而不是解析命令行输出。<代码> GeReSuiID < /代码>也一样,但是它只能查询调用过程的GID。您可以从C++代码中运行<代码>组< /代码>并读取其输出。正如您自己所说,没有标准的API用于此。