home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / utils / graphic / viewers / general / msdos / ncsa / src / fcntl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-04-22  |  2.7 KB  |  112 lines

  1. /**
  2. *
  3. * The following symbols are used for the "open" and "creat" functions.
  4. * They are generally UNIX-compatible, except for O_APPEND under MSDOS,
  5. * which has been moved in order to accomodate the file sharing flags
  6. * defined in MSDOS Version 3.
  7. *
  8. * Also, O_TEMP, O_UNIQ, and O_RAW are Lattice extensions.
  9. *
  10. **/
  11. #define O_RDONLY 0    /* Read-only value (right byte of mode word) */
  12. #define O_WRONLY 1    /* Write-only value */
  13. #define O_RDWR 2    /* Read-write value */
  14.  
  15. #if MSDOS
  16. #define O_NDELAY 0    /* Non-blocking I/O flag (N/A) */
  17. #else
  18. #define O_NDELAY 4    /* Non-blocking I/O flag */
  19. #endif
  20.  
  21. #define O_APPEND 8    /* Append mode flag */
  22.  
  23. #if MSDOS
  24. #define O_SDRW 0x10    /* Share mode: deny read/write */
  25. #define O_SDW 0x20    /* Share mode: deny write */
  26. #define O_SDR 0x30    /* Share mode: deny read */
  27. #define O_SDN 0x40    /* Share mode: deny none */
  28. #define O_PVT 0x80    /* Private file (not passed to child) */
  29. #endif
  30.  
  31. #define O_CREAT 0x0100    /* File creation flag */
  32. #define O_TRUNC 0x0200    /* File truncation flag */
  33. #define O_EXCL 0x0400    /* Exclusive access flag */
  34.  
  35. #define O_UNIQ 0x2000    /* Unique file flag (Lattice feature) */
  36. #define O_TEMP 0x4000    /* Temporary file flag (Lattice feature) */
  37. #define O_RAW 0x8000    /* Raw I/O flag (Lattice feature) */
  38.  
  39. /**
  40. *
  41. * The following flags are used to establish the protection mode.  Note
  42. * that under MSDOS only write-protection is meaningful.
  43. *
  44. *
  45. */
  46. #define S_IWRITE 0200
  47. #define S_IREAD 0400
  48.  
  49. /**
  50. *
  51. * The following symbols are used for the "fcntl" function.
  52. *
  53. */
  54. #define F_DUPFD 0    /* Duplicate file descriptor */
  55. #define F_GETFD 1    /* Get file descriptor flags */
  56. #define F_SETFD 2    /* Set file descriptor flags */
  57. #define F_GETFL 3    /* Get file flags */
  58. #define F_SETFL 4    /* Set file flags */
  59.  
  60. /**
  61. *
  62. * External definitions
  63. *
  64. **/
  65. #ifndef NARGS
  66. extern int close(int);
  67. extern int creat(char *, int);
  68. extern int dup(int);
  69. extern int dup2(int, int);
  70. extern int iomode(int, int);
  71. extern int isatty(int);
  72. extern long lseek(int, long, int);
  73. extern int open(char *, int, );
  74. extern int opene(char *, int, );
  75. extern int read(int, char *, unsigned);
  76. extern int remove(char *);
  77. extern int rename(char *, char *);
  78. extern long tell(int);
  79. extern int write(int, char *, unsigned);
  80. extern int unlink(char *);
  81. #else
  82. extern int close();
  83. extern int creat();
  84. extern int dup();
  85. extern int dup2();
  86. extern int iomode();
  87. extern int isatty();
  88. extern long lseek();
  89. extern int open();
  90. extern int opene();
  91. extern int read();
  92. extern int remove();
  93. extern int rename();
  94. extern long tell();
  95. extern int write();
  96. extern int unlink();
  97. #endif
  98.  
  99. /**
  100. *
  101. * Define NULL if it's not already defined
  102. *
  103. */
  104. #ifndef NULL
  105. #if SPTR
  106. #define NULL 0            /* null pointer value */
  107. #else
  108. #define NULL 0L
  109. #endif
  110. #endif
  111.  
  112.