Merge from emacs-24; up to 2014-05-15T16:55:18Z!jan.h.d@swipnet.se
[bpt/emacs.git] / nt / inc / unistd.h
1 /* Fake unistd.h: config.h already provides most of the relevant things. */
2
3 #ifndef _UNISTD_H
4 #define _UNISTD_H
5
6 #include <sys/types.h>
7 #include <pwd.h>
8
9 /* On Microsoft platforms, <stdlib.h> declares 'environ'; on POSIX
10 platforms, <unistd.h> does. Every file in Emacs that includes
11 <unistd.h> also includes <stdlib.h>, so there's no need to declare
12 'environ' here. */
13
14 /* Provide prototypes of library functions that are emulated on w32
15 and whose prototypes are usually found in unistd.h on POSIX
16 platforms. */
17 extern ssize_t readlink (const char *, char *, size_t);
18 extern ssize_t readlinkat (int, const char *, char *, size_t);
19 extern int symlink (char const *, char const *);
20 extern int setpgid (pid_t, pid_t);
21 extern pid_t getpgrp (void);
22 extern pid_t setsid (void);
23 extern pid_t tcgetpgrp (int);
24
25 extern int faccessat (int, char const *, int, int);
26
27 /* These are normally on fcntl.h, but we don't override that header. */
28 /* Use values compatible with gnulib, as there's no reason to differ. */
29 #define AT_FDCWD (-3041965)
30 #define AT_EACCESS 4
31 #define AT_SYMLINK_NOFOLLOW 4096
32
33 #define O_IGNORE_CTTY 0
34 #define O_NOCTTY 0
35 #define O_NOFOLLOW 0
36
37 /* This is normally on stdlib.h, but we don't override that header. */
38 extern int unsetenv (const char *);
39
40 #endif /* _UNISTD_H */