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.