| 1 | /*
|
|---|
| 2 | * FCntl.h -- faccess(), fcntl(), and open() mode flags
|
|---|
| 3 | *
|
|---|
| 4 | * Portions copyright American Telephone & Telegraph
|
|---|
| 5 | * Used with permission, Apple Computer Inc. (1985,1988,1990,1992)
|
|---|
| 6 | * All rights reserved.
|
|---|
| 7 | */
|
|---|
| 8 |
|
|---|
| 9 | #ifndef __FCNTL__
|
|---|
| 10 | #define __FCNTL__
|
|---|
| 11 |
|
|---|
| 12 | #ifndef __TYPES__
|
|---|
| 13 | #include <Types.h>
|
|---|
| 14 | #endif
|
|---|
| 15 |
|
|---|
| 16 | /*
|
|---|
| 17 | * For use by lseek():
|
|---|
| 18 | */
|
|---|
| 19 |
|
|---|
| 20 | #ifndef __STDIO__ /* these defns exactly paralled in StdIO.h for fseek() */
|
|---|
| 21 | #define SEEK_CUR 1
|
|---|
| 22 | #define SEEK_END 2
|
|---|
| 23 | #define SEEK_SET 0
|
|---|
| 24 | #endif
|
|---|
| 25 |
|
|---|
| 26 | /*
|
|---|
| 27 | * faccess() commands; for general use
|
|---|
| 28 | */
|
|---|
| 29 | /* 'd' => "directory" ops */
|
|---|
| 30 | #define F_DELETE (('d'<<8)|0x01)
|
|---|
| 31 | #define F_RENAME (('d'<<8)|0x02)
|
|---|
| 32 |
|
|---|
| 33 | /*
|
|---|
| 34 | * more faccess() commands; for use only by MPW tools
|
|---|
| 35 | */
|
|---|
| 36 |
|
|---|
| 37 | #define F_OPEN (('d'<<8)|0x00) /* reserved for operating system use */
|
|---|
| 38 | /* 'e' => "editor" ops */
|
|---|
| 39 | #define F_GTABINFO (('e'<<8)|0x00) /* get tab offset for file */
|
|---|
| 40 | #define F_STABINFO (('e'<<8)|0x01) /* set " " " " */
|
|---|
| 41 | #define F_GFONTINFO (('e'<<8)|0x02) /* get font number and size for file */
|
|---|
| 42 | #define F_SFONTINFO (('e'<<8)|0x03) /* set " " " " " " */
|
|---|
| 43 | #define F_GPRINTREC (('e'<<8)|0x04) /* get print record for file */
|
|---|
| 44 | #define F_SPRINTREC (('e'<<8)|0x05) /* set " " " " */
|
|---|
| 45 | #define F_GSELINFO (('e'<<8)|0x06) /* get selection information for file */
|
|---|
| 46 | #define F_SSELINFO (('e'<<8)|0x07) /* set " " " " */
|
|---|
| 47 | #define F_GWININFO (('e'<<8)|0x08) /* get current window position */
|
|---|
| 48 | #define F_SWININFO (('e'<<8)|0x09) /* set " " " */
|
|---|
| 49 | #define F_GSCROLLINFO (('e'<<8)|0x0A) /* get scroll information */
|
|---|
| 50 | #define F_SSCROLLINFO (('e'<<8)|0x0B) /* set " " */
|
|---|
| 51 | #define F_GMARKER (('e'<<8)|0x0D) /* Get Marker */
|
|---|
| 52 | #define F_SMARKER (('e'<<8)|0x0C) /* Set " */
|
|---|
| 53 | #define F_GSAVEONCLOSE (('e'<<8)|0x0F) /* Get Save on close */
|
|---|
| 54 | #define F_SSAVEONCLOSE (('e'<<8)|0x0E) /* Set " " " */
|
|---|
| 55 |
|
|---|
| 56 | /*
|
|---|
| 57 | * argument structures used by various faccess() commands
|
|---|
| 58 | */
|
|---|
| 59 |
|
|---|
| 60 | struct MarkElement {
|
|---|
| 61 | int start; /* start position of mark */
|
|---|
| 62 | int end; /* end position */
|
|---|
| 63 | unsigned char charCount; /* number of chars in mark name */
|
|---|
| 64 | char name[64]; /* mark name */
|
|---|
| 65 | } ; /* note: marker names may be up to 64 characters long */
|
|---|
| 66 |
|
|---|
| 67 | #ifndef __cplusplus
|
|---|
| 68 | typedef struct MarkElement MarkElement;
|
|---|
| 69 | #endif
|
|---|
| 70 |
|
|---|
| 71 | struct SelectionRecord {
|
|---|
| 72 | long startingPos;
|
|---|
| 73 | long endingPos;
|
|---|
| 74 | long displayTop;
|
|---|
| 75 | };
|
|---|
| 76 |
|
|---|
| 77 | #ifndef __cplusplus
|
|---|
| 78 | typedef struct SelectionRecord SelectionRecord;
|
|---|
| 79 | #endif
|
|---|
| 80 |
|
|---|
| 81 |
|
|---|
| 82 | /*
|
|---|
| 83 | * Mode values accessible to open()
|
|---|
| 84 | */
|
|---|
| 85 | #define O_RDONLY 0 /* Bits 0 and 1 are used internally */
|
|---|
| 86 | #define O_WRONLY 1 /* Values 0..2 are historical */
|
|---|
| 87 | #define O_RDWR 2 /* NOTE: it goes 0, 1, 2, *!* 8, 16, 32, ... */
|
|---|
| 88 | #define O_APPEND (1<< 3) /* append (writes guaranteed at the end) */
|
|---|
| 89 | #define O_RSRC (1<< 4) /* Open the resource fork */
|
|---|
| 90 | #define O_ALIAS (1<< 5) /* Open alias file */
|
|---|
| 91 | #define O_CREAT (1<< 8) /* Open with file create */
|
|---|
| 92 | #define O_TRUNC (1<< 9) /* Open with truncation */
|
|---|
| 93 | #define O_EXCL (1<<10) /* w/ O_CREAT: Exclusive "create-only" */
|
|---|
| 94 | #define O_BINARY (1<<11) /* Open as a binary stream */
|
|---|
| 95 | #define O_NRESOLVE (1<<14) /* Don't resolve any aliases */
|
|---|
| 96 |
|
|---|
| 97 | #ifdef __cplusplus
|
|---|
| 98 | extern "C" {
|
|---|
| 99 | #endif
|
|---|
| 100 |
|
|---|
| 101 | /*
|
|---|
| 102 | * function prototypes
|
|---|
| 103 | */
|
|---|
| 104 | int close(int);
|
|---|
| 105 | int creat(const char*);
|
|---|
| 106 | int dup(int filedes); /* OBSOLETE: fcntl(filedes, F_DUPFD, 0) is preferred */
|
|---|
| 107 | int faccess(char*, unsigned int, long*);
|
|---|
| 108 | int fcntl(int, unsigned int, int);
|
|---|
| 109 | long lseek(int, long, int);
|
|---|
| 110 | int open(const char*, int, ...);
|
|---|
| 111 | int read(int, char*, unsigned);
|
|---|
| 112 | int unlink(char*);
|
|---|
| 113 | int write(int, const char*, unsigned);
|
|---|
| 114 |
|
|---|
| 115 | #ifdef __cplusplus
|
|---|
| 116 | }
|
|---|
| 117 | #endif
|
|---|
| 118 |
|
|---|
| 119 | /*
|
|---|
| 120 | * fcntl() commands
|
|---|
| 121 | */
|
|---|
| 122 | #define F_DUPFD 0 /* Duplicate files (file descriptor) */
|
|---|
| 123 |
|
|---|
| 124 | #endif __FCNTL__
|
|---|