C语言获取所有组信息:Linux系统示例
C语言本身不支持获取所有组的功能,需要使用操作系统提供的相关函数来实现。在Linux系统中,可以使用getgrent函数和相关的结构体和函数来获取所有组的信息。
示例代码如下:
#include <stdio.h>
#include <grp.h>
int main() {
struct group *grp;
setgrent(); // 重置组文件指针
while ((grp = getgrent()) != NULL) { // 循环获取每个组的信息
printf('group name: %s\n', grp->gr_name);
printf('group id: %d\n', grp->gr_gid);
printf('group members: ');
char **members = grp->gr_mem;
while (*members != NULL) { // 循环输出组成员
printf('%s ', *members);
members++;
}
printf('\n\n');
}
endgrent(); // 关闭组文件指针
return 0;
}
该代码会输出系统中所有组的名称、ID和成员列表。需要注意的是,该代码只在Linux系统中可用,其他操作系统可能需要使用不同的函数和结构体来实现。
原文地址: https://www.cveoy.top/t/topic/kpGW 著作权归作者所有。请勿转载和采集!