summaryrefslogtreecommitdiff
path: root/src/grp/getgrgid.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/grp/getgrgid.c')
-rw-r--r--src/grp/getgrgid.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/grp/getgrgid.c b/src/grp/getgrgid.c
index 0d39ffc2..af10469c 100644
--- a/src/grp/getgrgid.c
+++ b/src/grp/getgrgid.c
@@ -1,10 +1,20 @@
#include "sys/types.h"
#include <grp.h>
-#include "stddef.h"
+#include "_grp.h"
struct group * getgrgid(gid_t gid)
{
- (void)gid;
+ struct group *grp = NULL;
+ setgrent();
+
+ while ((grp = getgrent()) != NULL) {
+ if (grp->gr_gid == gid) {
+ endgrent();
+ return grp;
+ }
+ }
+
+ endgrent();
return NULL;
}