1 /* modified for Borland C 3.1 and djgpp v2.01 Jan. 31, 1997 by K.Okabe */ 2 /* Last modified: Aug 5, 1998 by WILLs (Katsuyuki Okabe) */ 3 4 #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__TURBOC__) 5 6 #ifdef OS2 7 # define INCL_DOSPROCESS 8 # include <os2.h> 9 # if _MSC_VER == 510 10 # define DosGetPID DosGetPid 11 # endif 12 #else 13 # include <stdlib.h> 14 # include <process.h> 15 # include <dos.h> 16 # undef getpid 17 #endif 18 19 #ifndef WIN32 getpid(void)20int getpid(void) 21 { 22 #ifdef OS2 23 PIDINFO PidInfo; 24 25 DosGetPID(&PidInfo); 26 return(PidInfo.pid); 27 #else 28 return _psp; 29 #endif 30 } 31 #endif 32 getuid(void)33unsigned int getuid (void) 34 { 35 return (0); /* root! */ 36 } 37 geteuid(void)38unsigned int geteuid (void) 39 { 40 return (0); 41 } 42 getgid(void)43unsigned int getgid (void) 44 { 45 return (0); 46 } 47 getegid(void)48unsigned int getegid (void) 49 { 50 return (0); 51 } 52 53 #endif 54 getpgrp(void)55int getpgrp(void) 56 { 57 return (0); 58 } 59 60 #if defined(DJGPP) && DJGPP >= 2 61 62 #include <go32.h> 63 #include <sys/farptr.h> 64 65 int getpid(void)66getpid(void) 67 { 68 return (int) (_go32_info_block.linear_address_of_original_psp >> 16); 69 } 70 71 int getppid(void)72getppid(void) 73 { 74 return (int) _farpeekw(_dos_ds, _go32_info_block.linear_address_of_original_psp + 0x16); 75 } 76 77 #else /* ! (DJGPP >= 2) */ 78 79 #if defined(_MSC_VER) || defined(__GO32__) || defined(__MINGW32__) || defined(__TURBOC__) getppid(void)80int getppid(void) 81 { 82 #ifdef OS2 83 PIDINFO PidInfo; 84 85 DosGetPID(&PidInfo); 86 return(PidInfo.pidParent); 87 #else 88 #ifndef WIN32 89 return *(int *)(((unsigned long)_psp << 16) + 0x16); 90 #else 91 return 0; 92 #endif 93 #endif 94 } 95 #endif 96 #endif /* ! (DJGPP >= 2) */ 97