2018-10-22 14:57:25 +03:00
|
|
|
#pragma once
|
|
|
|
|
2018-10-31 04:09:11 +03:00
|
|
|
#include <sys/cdefs.h>
|
|
|
|
#include <sys/types.h>
|
2018-10-22 14:57:25 +03:00
|
|
|
|
2018-10-31 04:09:11 +03:00
|
|
|
__BEGIN_DECLS
|
2018-10-22 14:57:25 +03:00
|
|
|
|
2018-10-31 19:50:43 +03:00
|
|
|
extern char** environ;
|
|
|
|
|
2018-10-31 21:49:22 +03:00
|
|
|
inline int getpagesize() { return 4096; }
|
2018-11-02 14:56:51 +03:00
|
|
|
pid_t getsid(pid_t);
|
|
|
|
pid_t setsid();
|
|
|
|
int setpgid(pid_t pid, pid_t pgid);
|
|
|
|
pid_t getpgid(pid_t);
|
|
|
|
pid_t getpgrp();
|
2018-10-22 14:57:25 +03:00
|
|
|
uid_t getuid();
|
|
|
|
gid_t getgid();
|
|
|
|
pid_t getpid();
|
2018-11-02 15:14:25 +03:00
|
|
|
pid_t tcgetpgrp(int fd);
|
|
|
|
int tcsetpgrp(int fd, pid_t pgid);
|
2018-10-28 16:11:51 +03:00
|
|
|
int open(const char* path, int options);
|
2018-10-23 11:12:50 +03:00
|
|
|
ssize_t read(int fd, void* buf, size_t count);
|
2018-10-30 17:33:37 +03:00
|
|
|
ssize_t write(int fd, const void* buf, size_t count);
|
2018-10-23 11:12:50 +03:00
|
|
|
int close(int fd);
|
2018-10-27 02:24:22 +03:00
|
|
|
pid_t waitpid(pid_t, int* wstatus, int options);
|
2018-10-26 15:24:11 +03:00
|
|
|
int chdir(const char* path);
|
2018-10-24 15:28:22 +03:00
|
|
|
char* getcwd(char* buffer, size_t size);
|
2018-10-31 04:09:11 +03:00
|
|
|
int lstat(const char* path, struct stat* statbuf);
|
2018-10-31 12:14:56 +03:00
|
|
|
int stat(const char* path, struct stat* statbuf);
|
2018-10-25 14:53:49 +03:00
|
|
|
int sleep(unsigned seconds);
|
2018-10-26 10:54:29 +03:00
|
|
|
int gethostname(char*, size_t);
|
2018-10-28 16:11:51 +03:00
|
|
|
ssize_t readlink(const char* path, char* buffer, size_t);
|
2018-10-31 00:03:02 +03:00
|
|
|
char* ttyname(int fd);
|
|
|
|
int ttyname_r(int fd, char* buffer, size_t);
|
2018-10-31 19:50:43 +03:00
|
|
|
off_t lseek(int fd, off_t, int whence);
|
2018-10-26 10:54:29 +03:00
|
|
|
|
2018-10-27 02:24:22 +03:00
|
|
|
#define WEXITSTATUS(status) (((status) & 0xff00) >> 8)
|
|
|
|
#define WTERMSIG(status) ((status) & 0x7f)
|
|
|
|
#define WIFEXITED(status) (WTERMSIG(status) == 0)
|
2018-11-01 03:04:02 +03:00
|
|
|
#define WIFSIGNALED(status) (((char) (((status) & 0x7f) + 1) >> 1) > 0)
|
2018-10-27 02:24:22 +03:00
|
|
|
|
2018-10-26 10:54:29 +03:00
|
|
|
#define HOST_NAME_MAX 64
|
2018-10-24 14:19:36 +03:00
|
|
|
|
|
|
|
#define S_IFMT 0170000
|
|
|
|
#define S_IFDIR 0040000
|
|
|
|
#define S_IFCHR 0020000
|
|
|
|
#define S_IFBLK 0060000
|
|
|
|
#define S_IFREG 0100000
|
|
|
|
#define S_IFIFO 0010000
|
|
|
|
#define S_IFLNK 0120000
|
|
|
|
#define S_IFSOCK 0140000
|
|
|
|
|
|
|
|
#define S_ISUID 04000
|
|
|
|
#define S_ISGID 02000
|
|
|
|
#define S_ISVTX 01000
|
|
|
|
#define S_IRUSR 0400
|
|
|
|
#define S_IWUSR 0200
|
|
|
|
#define S_IXUSR 0100
|
|
|
|
#define S_IRGRP 0040
|
|
|
|
#define S_IWGRP 0020
|
|
|
|
#define S_IXGRP 0010
|
|
|
|
#define S_IROTH 0004
|
|
|
|
#define S_IWOTH 0002
|
|
|
|
#define S_IXOTH 0001
|
|
|
|
|
|
|
|
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
|
|
|
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
|
|
|
|
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
|
|
|
|
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
|
|
|
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
|
|
|
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
|
|
|
|
|
2018-10-28 16:11:51 +03:00
|
|
|
#define O_RDONLY 0
|
|
|
|
#define O_WRONLY 1
|
|
|
|
#define O_RDWR 2
|
|
|
|
#define O_DIRECTORY 00200000
|
|
|
|
#define O_NOFOLLOW 00400000
|
|
|
|
|
2018-10-31 04:09:11 +03:00
|
|
|
__END_DECLS
|
|
|
|
|