home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / Fcntl.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-03-16  |  2.4 KB  |  128 lines

  1. /* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
  2. #if __SC__ || __RCC__
  3. #pragma once
  4. #endif
  5.  
  6. #ifndef __FCNTL_H
  7. #define __FCNTL_H 1
  8.  
  9. #if __cplusplus
  10. extern "C" {
  11. #endif
  12.  
  13. #define O_RDONLY    0
  14. #define O_WRONLY    1
  15. #define O_RDWR        2
  16. #define O_APPEND    8
  17. #define O_CREAT        0x100
  18. #define O_TRUNC        0x200
  19. #define O_EXCL        0x400
  20.  
  21. #define _O_RDONLY       0
  22. #define _O_WRONLY       1
  23. #define _O_RDWR         2
  24. #define _O_APPEND       8
  25. #define _O_CREAT        0x100
  26. #define _O_TRUNC        0x200
  27. #define _O_EXCL         0x400
  28.  
  29. #if M_UNIX || M_XENIX
  30.  
  31. #define O_ACCMODE       3
  32. #if !defined(_XOPEN_SOURCE) && !defined(_POSIX_SOURCE)
  33. #define O_NDELAY        4
  34. #endif
  35. #define O_NONBLOCK      0x80
  36.  
  37. #if M_XOUT
  38.  
  39. #define CF_RDLCK    1
  40. #define CF_WRLCK    2
  41. #define CF_UNLCK    3
  42.  
  43. #define CMN_RDLCK    3
  44. #define CMN_WRLCK    1
  45. #define CMN_UNLCK    0
  46. #define F_RDLCK CMN_RDLCK
  47. #define F_WRLCK CMN_WRLCK
  48. #define F_UNLCK CMN_UNLCK
  49.  
  50. #define O_SYNCW 0020
  51. #define O_SYNC    O_SYNCW
  52.  
  53. #else /* M_XOUT */
  54.  
  55. #define F_RDLCK 01
  56. #define F_WRLCK 02
  57. #define F_UNLCK 03
  58.  
  59. #if !defined(_POSIX_SOURCE)
  60. #define O_SYNC    0x10
  61. #endif
  62.  
  63. #endif    /* M_XOUT */
  64.  
  65. #define O_NOCTTY 0x800
  66.  
  67. #define F_DUPFD      0
  68. #define F_GETFD      1
  69. #define F_SETFD      2
  70. #define F_GETFL      3
  71. #define F_SETFL      4
  72. #define F_GETLK      5
  73. #define F_SETLK      6
  74. #define F_SETLKW  7
  75. #if !defined(_XOPEN_SOURCE) && !defined(_POSIX_SOURCE)
  76. #define F_CHKFL   8
  77. #define F_ALLOCSP 10
  78. #define F_FREESP  11
  79. #define F_CHSIZE  0x6000
  80. #define F_RDCHK      0x6001
  81. #endif
  82.  
  83. #define FD_CLOEXEC    0x01
  84.  
  85. #if !defined(_XOPEN_SOURCE) && !defined(_POSIX_SOURCE)
  86. #define F_LK_NBRLCK     0x6100
  87. #define F_LK_NBLCK    0x6200
  88. #define F_LK_UNLCK    0x6300
  89. #define F_LK_RLCK    0x7100
  90. #define F_LK_LOCK    0x7200
  91.  
  92. #define LK_LCKTYPE(a)    ((a>>8)&7)
  93. #define LK_CMDTYPE(a)    ((a>>12)&7)
  94. #endif
  95.  
  96. #include <sys/types.h>
  97.  
  98. struct flock {
  99.         short   l_type;
  100.     short    l_whence;
  101.     off_t    l_start;
  102.         off_t   l_len;
  103.     short   l_sysid;
  104.     pid_t      l_pid;
  105. };
  106.  
  107. int __cdecl rdchk(int filedes);
  108. int __cdecl fcntl(int filedes, int cmd, ...);
  109.  
  110. #else    /* M_XENIX || M_UNIX */
  111.  
  112. #define O_NOINHERIT     0x80
  113. #define O_BINARY        0x8000
  114. #define O_TEXT          0x4000
  115.  
  116. #define _O_TEXT         0x4000
  117. #define _O_BINARY    0x8000
  118. #define _O_RAW          _O_BINARY
  119. #define _O_NOINHERIT    0x0080
  120.  
  121. #endif /* M_UNIX || M_XENIX */
  122.  
  123. #if __cplusplus
  124. }
  125. #endif
  126.  
  127. #endif
  128.