getpid.c 308 B

12345678910111213141516171819202122
  1. #include "lib.h"
  2. #include <sys/stat.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <errno.h>
  6. #include "sys9.h"
  7. pid_t
  8. getpid(void)
  9. {
  10. int n, f;
  11. char pidbuf[15];
  12. f = _OPEN("#c/pid", 0);
  13. n = _READ(f, pidbuf, sizeof pidbuf);
  14. if(n < 0)
  15. _syserrno();
  16. else
  17. n = atoi(pidbuf);
  18. _CLOSE(f);
  19. return n;
  20. }