char * gid_to_string (gid_t gid) { struct group grp, *result; char buffer[PW_BUF_SIZE], *gstring; int rc; rc = _getgrgid_r(gid, &grp, buffer, PW_BUF_SIZE, &result); if (rc == 0 && result) gstring = slurm_xstrdup(result->gr_name); else gstring = slurm_xstrdup("nobody"); return gstring; }
char * uid_to_string (uid_t uid) { struct passwd pwd, *result; char buffer[PW_BUF_SIZE], *ustring; int rc; /* Suse Linux does not handle multiple users with UID=0 well */ if (uid == 0) return slurm_xstrdup("root"); rc = _getpwuid_r (uid, &pwd, buffer, PW_BUF_SIZE, &result); if (result && (rc == 0)) ustring = slurm_xstrdup(result->pw_name); else ustring = slurm_xstrdup("nobody"); return ustring; }
int av_to_cluster_grouping_list(AV* av, List grouping_list) { SV** svp; char* str = NULL; int i, elements = 0; elements = av_len(av) + 1; for (i = 0; i < elements; i ++) { if ((svp = av_fetch(av, i, FALSE))) { str = slurm_xstrdup((char*)SvPV_nolen(*svp)); slurm_list_append(grouping_list, str); } else { Perl_warn(aTHX_ "error fetching group from grouping list"); return -1; } } return 0; }