如何查看多个用户组?

时间:2018-12-08 20:05:17

标签: c linux

如何查看多个用户组?

我的意思是用C语言实现。

我想使用getgrouplist()函数,但希望它自动获取组数。

1 个答案:

答案 0 :(得分:1)

这是一个即用型程序,似乎可以在我的macOS 10.14.1系统上运行,这似乎已经很落后了:

#include <stdio.h>
#include <unistd.h>

int main(void)
{
  int res = 0;
  int ng = 100;
  int gs[ng];
  res = getgrouplist("hacksaw", 20, gs, &ng);
  printf("num_grps: %d\nres: %d\n", ng, res);
}

以下是可在Ubuntu 16.04上运行的版本:

#include <stdio.h>
#include <grp.h>

int main(void)
{
  int res = 0;
  int ng = 100;
  gid_t gs[ng];
  res = getgrouplist("hacksaw", 20, gs, &ng);
  printf("num_grps: %d\nres: %d\n", ng, res);
}

任意选择大小100以提供足够的空间。