unistd.h 1.27 KB
Newer Older
Geoff Voelker's avatar
Geoff Voelker committed
1
/* Fake unistd.h: config.h already provides most of the relevant things. */
Miles Bader's avatar
Miles Bader committed
2

3 4 5
#ifndef _UNISTD_H
#define _UNISTD_H

6 7 8
#include <sys/types.h>
#include <pwd.h>

9 10 11 12 13
/* On Microsoft platforms, <stdlib.h> declares 'environ'; on POSIX
   platforms, <unistd.h> does.  Every file in Emacs that includes
   <unistd.h> also includes <stdlib.h>, so there's no need to declare
   'environ' here.  */

Juanma Barranquero's avatar
Juanma Barranquero committed
14 15
/* Provide prototypes of library functions that are emulated on w32
   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 21
extern int setpgid (pid_t, pid_t);
extern pid_t getpgrp (void);
22 23
extern pid_t setsid (void);
extern pid_t tcgetpgrp (int);
24

25 26 27 28 29 30 31 32
extern int faccessat (int, char const *, int, int);

/* These are normally on fcntl.h, but we don't override that header.  */
/* Use values compatible with gnulib, as there's no reason to differ.  */
#define AT_FDCWD (-3041965)
#define AT_EACCESS 4
#define AT_SYMLINK_NOFOLLOW 4096

33
#define O_IGNORE_CTTY 0
34
#define O_NOCTTY 0
35
#define O_NOFOLLOW 0
36

37 38
/* This is normally on stdlib.h, but we don't override that header.  */
extern int unsetenv (const char *);
39

40
#endif	/* _UNISTD_H */