getlogin.c 301 B

12345678910111213141516171819
  1. #include <sys/types.h>
  2. #include <sys/stat.h>
  3. #include <fcntl.h>
  4. #include <unistd.h>
  5. #include <sys/limits.h>
  6. char *
  7. getlogin(void)
  8. {
  9. static char buf[NAME_MAX+1];
  10. int f, n;
  11. f = open("/dev/user", O_RDONLY);
  12. if(f < 0)
  13. return 0;
  14. n = read(f, buf, NAME_MAX+1);
  15. close(f);
  16. return (n>=0)? buf : 0;
  17. }