This is unix.c in view mode; [Download] [Up]
#import "mst.h" #include <sys/file.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/types.h> #include <sys/socket.h> #include <signal.h> extern void defineCFunc(); void initUnixCFuncs() { /* * File stuff FILE *fopen(const char *filename, const char *type); FILE *freopen(const char *filename, const char *type, FILE *stream); FILE *fdopen(int fildes, char *type); size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream); size_t fwrite(void *ptr, size_t size, size_t nitems, FILE *stream); int fclose(FILE *stream); int fflush(FILE *stream); */ defineCFunc("fopen", fopen); defineCFunc("freopen", freopen); defineCFunc("fdopen", fdopen); defineCFunc("fread", fdopen); defineCFunc("fwrite", fdopen); defineCFunc("fflush", fflush); defineCFunc("fclose", fclose); /* int open(char *path, int flags, int mode); int close(int fd); int flock(int fd, int operation) int read(int fd, char *buf, int nbytes); int write(int fd, char *buf, int nbytes); int dup(int fd); int dup2(int fd, int fd2); int pipe(int fildes[2]) */ defineCFunc("open", open); defineCFunc("close", close); defineCFunc("flock", flock); defineCFunc("read", read); defineCFunc("write", write); defineCFunc("dup", dup); defineCFunc("dup2", dup2); defineCFunc("pipe", pipe); /* int creat(const char *path, mode_t mode); int chmod(const char *path, mode_t mode); int chown(const char *path, uid_t owner, gid_t group); mode_t umask(mode_t cmask); int rename(const char *old, const char *new); int link(const char *existing, const char *new); int unlink(const char *path); */ defineCFunc("creat", creat); defineCFunc("chmod", chmod); defineCFunc("chown", chown); defineCFunc("umask", chmod); defineCFunc("rename", rename); defineCFunc("link", link); defineCFunc("unlink", unlink); /* process stuff pid_t getpid(void); pid_t getppid(void); int kill(pid_t pid, int sig); int killpg(int pgrp, int sig) pid_t getpgrp(int pid); int setpgrp(int pid, int pgrp) int getpriority(int which, int who) int setpriority(int which, int who, int prio) pid_t fork(void); int vfork(void); int execl(const char *name, const char *arg0, const char *arg1, ..., const char *argn, (char *) 0); int execv(const char *path, const char int execle(const char *path, const char *arg0, const char *arg1, ..., const char *argn, (char *) 0, const char *envp[]); int execlp(const char *file, const char *arg0, const char *arg1, ..., const char *argn, (char *) 0); int execvp(const char *file, const char */ defineCFunc("getpid", getpid); defineCFunc("kill", kill); defineCFunc("killpg", killpg); defineCFunc("getpgrp", getpgrp); defineCFunc("setpgrp", setpgrp); defineCFunc("getppid", getppid); defineCFunc("nice", setpriority); defineCFunc("setpriority", setpriority); defineCFunc("fork", fork); defineCFunc("vfork", vfork); defineCFunc("execve", execve); defineCFunc("execl", execl); defineCFunc("execle", execle); defineCFunc("execlp", execlp); defineCFunc("execvp", execvp); /* Socket code int accept(int, struct sockaddr *, int *); int bind(int, struct sockaddr *, int); int connect(int, struct sockaddr *, int); int getpeername(int, struct sockaddr *, int *); int getsockname(int, struct sockaddr *, int *); int getsockopt(int, int, int, void *optval, int *); int setsockopt(int, int, int, void *optval, int); int listen(int, int); int recv(int, void *, int, int); int recvfrom(int, void *, int, int, struct sockaddr *, int *); int recvmsg(int, struct msghdr *, int); int send(int, void *, int, int); int sendto(int, void *, int, int, struct sockaddr *, int); int sendmsg(int, struct msghdr *, int); int socket(int, int, int); int socketpair(int, int, int, int *); */ defineCFunc("accept", accept); defineCFunc("bind", bind); defineCFunc("connect", connect); defineCFunc("getpeername", getpeername); defineCFunc("getsockname", getsockname); defineCFunc("accept", accept); defineCFunc("accept", accept); /* Code in libc */ }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.