#include "../command.h" #include #include COMMAND_EMPTY(groups) { uid_t uid; int ngroups, i; gid_t* groups; struct passwd* pw; uid = getuid(); pw = getpwuid(uid); if(pw == NULL){ error("failed to fetch groups: %s", strerror(errno)); } ngroups = 0; getgrouplist(pw->pw_name, pw->pw_gid, NULL, &ngroups); groups = malloc(sizeof(gid_t) * ngroups); getgrouplist(pw->pw_name, pw->pw_gid, groups, &ngroups); for (i = 0; i < ngroups; i++){ struct group* gr = getgrgid(groups[i]); if(gr == NULL) { free(groups); error("failed to fetch groups: %s", strerror(errno)); } printf("%s ",gr->gr_name); } printf("\n"); free(groups); return EXIT_SUCCESS; }