diff options
Diffstat (limited to 'src/unistd/cuserid.c')
| -rw-r--r-- | src/unistd/cuserid.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/unistd/cuserid.c b/src/unistd/cuserid.c new file mode 100644 index 00000000..1fa65dbe --- /dev/null +++ b/src/unistd/cuserid.c @@ -0,0 +1,30 @@ +#include "stddef.h" +#include "sys/types.h" +#include <unistd.h> +#include "stdio.h" +#include "string.h" +#include "pwd.h" + +char *cuserid(char *s) +{ + static char userid[L_cuserid]; + + struct passwd *pwd = getpwuid(geteuid()); + + if (s == NULL) { + s = userid; + } + + if (pwd == NULL) { + s[0] = '\0'; + } else { + strcpy(s, pwd->pw_name); + } + + return s; +} + +/* +TODO: verify +POSIX(1, 199506) +*/ |
