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
|
#include <dirent.h>
#define MCVS_WRAP(FUNC, RETTYPE, ARGNAMES, ARGDECLS) \
RETTYPE mcvs_ ## FUNC ARGDECLS;
MCVS_WRAP(strerror, char *, (errnum), (int errnum))
MCVS_WRAP(opendir, DIR *, (name), (const char *name))
MCVS_WRAP(closedir, int, (dir), (DIR *dir))
MCVS_WRAP(open, int, (pathname, flags), (const char *pathname, int flags))
MCVS_WRAP(close, int, (fd), (int fd))
MCVS_WRAP(chdir, int, (path), (const char *path))
MCVS_WRAP(fchdir, int, (fd), (int fd))
MCVS_WRAP(link, int, (oldpath, newpath), (const char *oldpath, const char *newpath))
MCVS_WRAP(symlink, int, (oldpath, newpath), (const char *oldpath, const char *newpath))
MCVS_WRAP(unlink, int, (pathname), (const char *pathname))
MCVS_WRAP(rmdir, int, (pathname), (const char *pathname))
MCVS_WRAP(chmod, int, (path, mode), (const char *path, mode_t mode))
int mcvs_null_pointer_p(void *ptr);
int mcvs_get_errno(void);
int mcvs_set_errno(int value);
typedef struct {
unsigned long d_ino;
char d_name[1024];
} mcvs_dirent;
mcvs_dirent *mcvs_readdir(DIR *dir);
struct mcvs_stat {
unsigned long dev;
unsigned long ino;
unsigned long mode;
unsigned int nlink;
unsigned int uid;
unsigned int gid;
unsigned long rdev;
unsigned long blksize;
unsigned long blocks;
unsigned long atime;
unsigned long mtime;
unsigned long ctime;
};
#define IMPL_STAT(FUNC, ARGTYPE) \
int mcvs_ ## FUNC(ARGTYPE arg, struct mcvs_stat *buf);
IMPL_STAT(stat, const char *)
IMPL_STAT(lstat, const char *)
IMPL_STAT(fstat, int)
char *mcvs_readlink(const char *path);
const char *mcvs_getcwd(void);
void mcvs_default_sigchld();
char *mcvs_ctermid(void);
#ifdef __CYGWIN__
int mcvs_spawn(const char *name, const char *const *argv);
#else
int mcvs_spawn(const char *name, char *const *argv);
#endif
|