home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / sysutils / msshell / unistd.h < prev   
C/C++ Source or Header  |  1992-06-20  |  8KB  |  328 lines

  1. #ifndef _UNISTD_H
  2. #define _UNISTD_H
  3.  
  4. /*  unistd.h  */
  5.  
  6. #include <sys/types.h>
  7. #include <sys/proto.h>
  8. #include <sys/null.h>
  9.  
  10. /*  for access(2)  */
  11.  
  12. #define R_OK         4
  13. #define W_OK         2
  14. #define X_OK         1
  15. #define F_OK         0
  16.  
  17. /*  for lockf()  */
  18.  
  19. #define F_ULOCK        0
  20. #define F_LOCK        1
  21. #define F_TLOCK        2
  22. #define F_TEST        3
  23.  
  24. /*  for lseek(2)  */
  25.  
  26. #ifndef SEEK_SET
  27. #define SEEK_SET    0
  28. #endif
  29.  
  30. #ifndef SEEK_CUR
  31. #define SEEK_CUR    1
  32. #endif
  33.  
  34. #ifndef SEEK_END
  35. #define SEEK_END    2
  36. #endif
  37.  
  38. /* STDIO definitions */
  39.  
  40. #define    STDIN_FILENO    0
  41. #define    STDOUT_FILENO    1
  42. #define    STDERR_FILENO    2
  43.  
  44. /* Standard paths */
  45.  
  46. #ifndef MSDOS
  47. #define GF_PATH        "/etc/group"
  48. #define PF_PATH        "/etc/passwd"
  49. #define IF_PATH        "/usr/include"
  50. #define SF_PATH        "/etc/shadow"
  51. #else
  52. #define GF_PATH        "c:/etc/group"
  53. #define PF_PATH        "c:/etc/passwd"
  54. #define IF_PATH        "c:/include"
  55. #define SF_PATH        "c:/etc/shadow"
  56. #endif
  57.  
  58. /* POSIX definitions */
  59.  
  60. #define _POSIX_VERSION        198803L
  61. #undef    _POSIX_CHOWN_RESTRICTED
  62. #undef    _POSIX_JOB_CONTROL
  63. #define    _POSIX_NO_TRUNC        1
  64. #define _POSIX_SAVED_IDS    1
  65. #undef    _POSIX_VDISABLE
  66. /* #define _XOPEN_VERSION        */
  67.  
  68. /* sysconf values */
  69.  
  70. #define _SC_ARG_MAX        0
  71. #define _SC_CHILD_MAX        1
  72. #define _SC_CLK_TCK        2
  73. #define _SC_NGROUPS_MAX        3
  74. #define _SC_OPEN_MAX        4
  75. #define _SC_JOB_CONTROL        5
  76. #define _SC_SAVED_IDS        6
  77. #define _SC_VERSION        7
  78. #define _SC_PASS_MAX        8
  79. #define _SC_XOPEN_VERSION    9
  80.  
  81. /* pathconf values */
  82.  
  83. #define _PC_LINK_MAX        0
  84. #define _PC_MAX_CANON        1
  85. #define _PC_MAX_INPUT        2
  86. #define _PC_NAME_MAX        3
  87. #define _PC_PATH_MAX        4
  88. #define _PC_PIPE_BUF        5
  89. #define _PC_CHOWN_RESTRICTED    6
  90. #define _PC_NO_TRUNC        7
  91. #define _PC_VDISABLE        8
  92.  
  93. /* confstring values */
  94.  
  95. #define _CS_PATH        1
  96.  
  97. /* Function declarations */
  98.  
  99. extern size_t _FAR_ _CDECL    confstring _PROTO ((int, char _FAR_ *, size_t));
  100. extern void _FAR_ _CDECL    abort _PROTO ((void));
  101. #ifdef MSDOS
  102. extern int _FAR_ _CDECL        chsize _PROTO ((int, off_t));
  103. #else
  104. extern int _FAR_ _CDECL        chsize _PROTO ((const char _FAR_ *, off_t));
  105. #endif
  106. extern void _FAR_ _CDECL    sync _PROTO ((void));
  107.  
  108. /* --- Process creation and execution --- */
  109.  
  110. extern pid_t _FAR_ _CDECL    fork _PROTO ((void));
  111. extern pid_t _FAR_ _CDECL    vfork _PROTO ((void));
  112.  
  113. extern int _FAR_ _CDECL    execl    _PROTO ((const char _FAR_ *,
  114.                      const char _FAR_ *, ...));
  115.  
  116. extern int _FAR_ _CDECL    execle    _PROTO ((const char _FAR_ *,
  117.                      const char _FAR_ *, ...));
  118.  
  119. extern int _FAR_ _CDECL    execlp    _PROTO ((const char _FAR_ *,
  120.                      const char _FAR_ *, ...));
  121.  
  122. extern int _FAR_ _CDECL    execlpe    _PROTO ((const char _FAR_ *,
  123.                      const char _FAR_ *, ...));
  124.  
  125. extern int _FAR_ _CDECL    execv    _PROTO ((const char _FAR_ *,
  126.                      const char _FAR_ * const _FAR_ *));
  127.  
  128. extern int _FAR_ _CDECL    execve    _PROTO ((const char _FAR_ *,
  129.                      const char _FAR_ * const _FAR_ *,
  130.                      const char _FAR_ * const _FAR_ *));
  131.  
  132. extern int _FAR_ _CDECL    execvp    _PROTO ((const char _FAR_ *,
  133.                      const char _FAR_ * const _FAR_ *));
  134.  
  135. extern int _FAR_ _CDECL    execvpe    _PROTO ((const char _FAR_ *,
  136.                      const char _FAR_ * const _FAR_ *,
  137.                      const char _FAR_ * const _FAR_ *));
  138.  
  139. #ifdef MSDOS
  140. extern int _FAR_ _CDECL    spawnl    _PROTO ((int, const char *,
  141.                      const char *, ...));
  142.  
  143. extern int _FAR_ _CDECL    spawnle    _PROTO ((int, const char _FAR_ *,
  144.                      const char _FAR_ *, ...));
  145.  
  146. extern int _FAR_ _CDECL    spawnlp    _PROTO ((int, const char _FAR_ *,
  147.                      const char _FAR_ *, ...));
  148.  
  149. extern int _FAR_ _CDECL    spawnlpe _PROTO ((int, const char _FAR_ *,
  150.                       const char _FAR_ *, ...));
  151.  
  152. extern int _FAR_ _CDECL    spawnv    _PROTO ((int, const char _FAR_ *,
  153.                      const char _FAR_ * const _FAR_ *));
  154.  
  155. extern int _FAR_ _CDECL    spawnve    _PROTO ((int, const char _FAR_ *,
  156.                      const char _FAR_ * const _FAR_ *,
  157.                      const char _FAR_ * const _FAR_ *));
  158.  
  159. extern int _FAR_ _CDECL    spawnvp    _PROTO ((int, const char _FAR_ *,
  160.                      const char _FAR_ * const _FAR_ *));
  161.  
  162. extern int _FAR_ _CDECL    spawnvpe _PROTO ((int, const char _FAR_ *,
  163.                       const char _FAR_ * const _FAR_ *,
  164.                       const char _FAR_ * const _FAR_ *));
  165.  
  166. /* Overlay functions for MSDOS */
  167.  
  168. extern int _NEAR _FAR_ _CDECL    _p_overlay;
  169.  
  170. #define P_WAIT        0
  171. #define P_OVERLAY    _p_overlay
  172. #define OLD_P_OVERLAY    2
  173. #ifdef OS2
  174. #define P_NOWAIT    1
  175. #define P_NOWAITO    3
  176. #define P_DETACH    4
  177.  
  178. #define WAIT_CHILD 0
  179. #define WAIT_GRANDCHILD 1
  180.  
  181. extern int _FAR_ _CDECL cwait _PROTO ((int _FAR_ *, int, int));
  182. extern int _FAR_ _CDECL wait _PROTO ((int _FAR_ *));
  183. #endif
  184. #endif
  185.  
  186. /*
  187.  * Process termination
  188.  */
  189.  
  190. extern void _FAR_ _CDECL    _exit _PROTO ((int));
  191. extern void _FAR_ _CDECL    exit _PROTO ((int));
  192.  
  193. /*
  194.  * Timer operations
  195.  */
  196.  
  197. extern unsigned int _FAR_ _CDECL    alarm _PROTO ((unsigned int));
  198. extern int _FAR_ _CDECL            pause _PROTO ((void));
  199. extern unsigned int _FAR_ _CDECL    sleep _PROTO ((unsigned int));
  200.  
  201. /*
  202.  * Process identification
  203.  */
  204.  
  205. extern pid_t _FAR_ _CDECL    getpid _PROTO ((void));
  206. extern pid_t _FAR_ _CDECL    getppid _PROTO ((void));
  207.  
  208. /*
  209.  * User identification
  210.  */
  211.  
  212. extern uid_t _FAR_ _CDECL        getuid _PROTO ((void));
  213. extern uid_t _FAR_ _CDECL        geteuid _PROTO ((void));
  214. extern gid_t _FAR_ _CDECL        getgid _PROTO ((void));
  215. extern gid_t _FAR_ _CDECL        getegid _PROTO ((void));
  216. extern int _FAR_ _CDECL            setuid _PROTO ((uid_t));
  217. extern int _FAR_ _CDECL            setgid _PROTO ((gid_t));
  218. extern int _FAR_ _CDECL            getgroups _PROTO ((int, gid_t *));
  219. extern char _FAR_ * _FAR_ _CDECL    getlogin _PROTO ((void));
  220. extern char _FAR_ * _FAR_ _CDECL    cuserid _PROTO ((char _FAR_ *));
  221.  
  222. /*
  223.  * Process groups
  224.  */
  225.  
  226. extern pid_t _FAR_ _CDECL        getpgrp _PROTO ((void));
  227. extern pid_t _FAR_ _CDECL        setsid _PROTO ((void));
  228. extern int _FAR_ _CDECL            setpgid _PROTO ((pid_t, pid_t));
  229.  
  230. /*
  231.  * Terminal identification
  232.  */
  233.  
  234. extern char _FAR_ * _FAR_ _CDECL    ctermid _PROTO ((char _FAR_ *));
  235. extern char _FAR_ * _FAR_ _CDECL    ttyname _PROTO ((int));
  236. extern int _FAR_ _CDECL            isatty _PROTO ((int));
  237.  
  238. /*
  239.  * Configurable system variables
  240.  */
  241.  
  242. extern long _FAR_ _CDECL    sysconf _PROTO ((int));
  243.  
  244. /*
  245.  * Working directory
  246.  */
  247.  
  248. extern int _FAR_ _CDECL            chdir _PROTO ((const char _FAR_ *));
  249. extern char _FAR_ * _FAR_ _CDECL    getcwd _PROTO ((char _FAR_ *, int));
  250.  
  251. /*
  252.  * General file creation
  253.  */
  254.  
  255. extern int _FAR_ _CDECL        link _PROTO ((const char _FAR_ *,
  256.                           const char _FAR_ *));
  257. extern int _FAR_ _CDECL        rename _PROTO ((const char _FAR_ *,
  258.                         const char _FAR_ *));
  259. extern char _FAR_ * _FAR_ _CDECL mktemp _PROTO ((char _FAR_ *));
  260.  
  261. /*
  262.  * File removal
  263.  */
  264.  
  265. extern int _FAR_ _CDECL        unlink _PROTO ((const char _FAR_ *));
  266. extern int _FAR_ _CDECL        remove _PROTO ((const char _FAR_ *));
  267. extern int _FAR_ _CDECL        rmdir _PROTO ((const char _FAR_ *));
  268.  
  269. /*
  270.  * File characteristics
  271.  */
  272.  
  273. extern int _FAR_ _CDECL        access _PROTO ((const char _FAR_ *, int));
  274. extern int _CDECL        chown _PROTO ((const char _FAR_ *, uid_t, gid_t));
  275. extern long _FAR_ _CDECL    tell _PROTO ((int));
  276. extern int _FAR_ _CDECL        eof _PROTO ((int));
  277. extern long _FAR_ _CDECL    filelength _PROTO ((int));
  278.  
  279. /*
  280.  * Configurable pathname variables
  281.  */
  282.  
  283. extern long _FAR_ _CDECL    pathconf _PROTO ((char _FAR_ *, int));
  284. extern long _FAR_ _CDECL    fpathconf _PROTO ((int, int));
  285.  
  286. /*
  287.  * Pipes
  288.  */
  289.  
  290. extern int _FAR_ _CDECL        pipe _PROTO ((int[2]));
  291.  
  292. /*
  293.  * File descriptor manipulation
  294.  */
  295.  
  296. extern int _FAR_ _CDECL        dup _PROTO ((int));
  297. extern int _FAR_ _CDECL        dup2 _PROTO ((int, int));
  298.  
  299. /*
  300.  * File descriptor assignment
  301.  */
  302.  
  303. extern int _FAR_ _CDECL    open _PROTO ((const char _FAR_ *, int, ...));
  304. extern int _FAR_ _CDECL    sopen _PROTO ((const char _FAR_ *, int, int, ...));
  305. extern int _FAR_ _CDECL    creat _PROTO ((const char _FAR_ *, mode_t));
  306. extern int _FAR_ _CDECL    setmode _PROTO ((int, int));
  307.  
  308. /*
  309.  * File descriptor deassignment
  310.  */
  311.  
  312. extern int _FAR_ _CDECL    close _PROTO ((int));
  313.  
  314. /*
  315.  * Input and output
  316.  */
  317.  
  318. extern int _FAR_ _CDECL    read _PROTO ((int, const void _FAR_ *, unsigned int));
  319. extern int _FAR_ _CDECL    write _PROTO ((int, const void _FAR_ *, unsigned int));
  320.  
  321. /*
  322.  * Control operations on files
  323.  */
  324.  
  325. extern off_t _FAR_ _CDECL    lseek _PROTO ((int, off_t, int));
  326. extern int _FAR_ _CDECL     locking _PROTO ((int, int, long));
  327. #endif
  328.