Index: fusl/src/passwd/putgrent.c |
diff --git a/fusl/src/passwd/putgrent.c b/fusl/src/passwd/putgrent.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a0b320fc32692bc244d40f0c0191f8d94eefb388 |
--- /dev/null |
+++ b/fusl/src/passwd/putgrent.c |
@@ -0,0 +1,17 @@ |
+#define _GNU_SOURCE |
+#include <grp.h> |
+#include <stdio.h> |
+ |
+int putgrent(const struct group *gr, FILE *f) |
+{ |
+ int r; |
+ size_t i; |
+ flockfile(f); |
+ if ((r = fprintf(f, "%s:%s:%d:", gr->gr_name, gr->gr_passwd, gr->gr_gid))<0) goto done; |
+ if (gr->gr_mem) for (i=0; gr->gr_mem[i]; i++) |
+ if ((r = fprintf(f, "%s%s", i?",":"", gr->gr_mem[i]))<0) goto done; |
+ r = fputc('\n', f); |
+done: |
+ funlockfile(f); |
+ return r<0 ? -1 : 0; |
+} |