1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/*
Copyright (c) 1990-1999 Info-ZIP. All rights reserved.
See the accompanying file LICENSE, version 1999-Oct-05 or later
(the contents of which are also included in zip.h) for terms of use.
If, for some reason, both of these files are missing, the Info-ZIP license
also may be found at: ftp://ftp.cdrom.com/pub/infozip/license.html
*/
/*
* Directory Operations for Mac based on BSD 4.3 <macdir.h>
* By Jason Linhart, January 1997
*/
#ifndef _UNIXLIKE_H
#define _UNIXLIKE_H 1
#include <stat.h>
#ifndef NAME_MAX
#define NAME_MAX 2048
#endif
#define UNX_IFMT 0170000 /* Unix file type mask */
#define UNX_IFSOCK 0140000 /* Unix socket (BSD, not SysV or Amiga) */
#define UNX_IFLNK 0120000 /* Unix symbolic link (not SysV, Amiga) */
#define UNX_IFREG 0100000 /* Unix regular file */
#define UNX_IFBLK 0060000 /* Unix block special (not Amiga) */
#define UNX_IFDIR 0040000 /* Unix directory */
#define UNX_IFCHR 0020000 /* Unix character special (not Amiga) */
#define UNX_IFIFO 0010000 /* Unix fifo (BCC, not MSC or Amiga) */
#define UNX_ISUID 04000 /* Unix set user id on execution */
#define UNX_ISGID 02000 /* Unix set group id on execution */
#define UNX_ISVTX 01000 /* Unix directory permissions control */
#define UNX_ENFMT UNX_ISGID /* Unix record locking enforcement flag */
#define UNX_IRWXU 00700 /* Unix read, write, execute: owner */
#define UNX_IRUSR 00400 /* Unix read permission: owner */
#define UNX_IWUSR 00200 /* Unix write permission: owner */
#define UNX_IXUSR 00100 /* Unix execute permission: owner */
#define UNX_IRWXG 00070 /* Unix read, write, execute: group */
#define UNX_IRGRP 00040 /* Unix read permission: group */
#define UNX_IWGRP 00020 /* Unix write permission: group */
#define UNX_IXGRP 00010 /* Unix execute permission: group */
#define UNX_IRWXO 00007 /* Unix read, write, execute: other */
#define UNX_IROTH 00004 /* Unix read permission: other */
#define UNX_IWOTH 00002 /* Unix write permission: other */
#define UNX_IXOTH 00001 /* Unix execute permission: other */
/* historical file modes */
#define S_IREAD 0x100
#define S_IWRITE 0x80
#define S_IEXEC 0x40
#define isatty(arg) 1
#define EINVAL 22 /* Invalid argument */
#define ENAMETOOLONG 63 /* File name too long */
struct dirent {
char d_name[NAME_MAX];
};
/*
* The following definitions are usually found in fcntl.h.
* However, MetroWerks has screwed that file up a couple of times
* and all we need are the defines.
*/
#define O_APPEND 0x0100 /* open the file in append mode */
#define O_CREAT 0x0200 /* create the file if it doesn't exist */
#define O_EXCL 0x0400 /* if the file exists don't create it again */
#define O_TRUNC 0x0800 /* truncate the file after opening it */
int Zmacstat (const char *path, struct stat *buf);
int chmod(char *path, int mode);
#include "macstuff.h"
#endif /* _UNIXLIKE_H */
|