/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/Makefile |
---|
0,0 → 1,8 |
THIS_SRCS = access.c alarm.c chdir.c chown.c close.c ctermid.c dup2.c \ |
dup.c execl.c execle.c execlp.c execlpe.c execv.c execve.c execvp.c \ |
execvpe.c fork.c fpathcon.c getcwd.c getegid.c geteuid.c getgid.c \ |
getgroup.c getlogin.c getopt.c getpgrp.c getpid.c getppid.c getuid.c \ |
isatty.c link.c lseek.c pathconf.c pause.c pipe.c read.c rmdir.c setgid.c \ |
setpgid.c setsid.c setuid.c sleep.c sysconf.c ttyname.c unlink.s write.c |
include $(MENUET_LIBC_TOPDIR)/Make.rules |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/access.c |
---|
0,0 → 1,59 |
/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */ |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <stdio.h> |
#include <sys/stat.h> |
#include <io.h> |
#include <dirent.h> |
#include <errno.h> |
int access(const char *fn, int flags) |
{ |
unsigned attr = _chmod(fn, 0); |
if (attr == -1) { |
char fixed_path[FILENAME_MAX]; |
const char* p; |
int nums = 0; |
DIR* d; |
/* Root directories on some non-local drives (e.g. CD-ROM) |
might fail `_chmod'. `findfirst' to the rescue. */ |
_fixpath(fn, fixed_path); |
for (p=fixed_path;*p;p++) if (*p == '/') ++nums; |
if (nums <= 2) |
{ |
d = opendir(fn); |
if (d) {closedir(d);return 0;} |
} |
errno = ENOENT; |
return -1; |
} |
if (attr & 0x10) /* directory? */ |
return 0; /* directories always OK */ |
if (flags & D_OK) |
{ |
errno = EACCES; |
return -1; /* not a directory */ |
} |
if ((flags & W_OK) && (attr & 1)) |
{ |
errno = EACCES; |
return -1; /* not writable */ |
} |
if (flags & X_OK) |
{ |
if (!_is_executable(fn, 0, 0)) |
{ |
errno = EACCES; |
return -1; |
} |
} |
return 0; /* everything else is OK */ |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/alarm.c |
---|
0,0 → 1,12 |
/* Copyright (C) 1995 Charles Sandmann (sandmann@clio.rice.edu) |
alarm() implmentation using setitimer |
This software may be freely distributed, no warranty. */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <sys/time.h> |
unsigned int alarm(unsigned int seconds) |
{ |
return seconds; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/chdir.c |
---|
0,0 → 1,14 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <errno.h> |
#include <ctype.h> |
#include <libc/dosio.h> |
void __chdir(char * path); |
int chdir (const char *dirname) |
{ |
__chdir((char *)dirname); |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/chown.c |
---|
0,0 → 1,15 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <sys/stat.h> |
#include <errno.h> |
/* MS-DOS couldn't care less about file ownerships, so we could |
always succeed. At least fail for non-existent files |
and for devices. */ |
int chown(const char *path, uid_t owner, gid_t group) |
{ |
errno = ENOENT; |
return -1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/close.c |
---|
0,0 → 1,6 |
#include<menuet/os.h> |
int close(int handle) |
{ |
return dosemu_close(handle); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/ctermid.c |
---|
0,0 → 1,14 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <string.h> |
static char def_termid[] = "con"; |
char * |
ctermid(char *_s) |
{ |
if (!_s) |
return def_termid; |
strcpy(_s, def_termid); |
return _s; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/dup.c |
---|
0,0 → 1,11 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <errno.h> |
#include <io.h> |
#include <libc/dosio.h> |
int dup(int fd) |
{ |
return -1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/dup2.c |
---|
0,0 → 1,12 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <errno.h> |
#include <io.h> |
#include <libc/dosio.h> |
int |
dup2(int fd, int newfd) |
{ |
return -1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execl.c |
---|
0,0 → 1,11 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
extern char *const *environ; |
int execl(const char *path, const char *argv0, ...) |
{ |
return spawnve(P_OVERLAY, path, (char *const*)&argv0, environ); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execle.c |
---|
0,0 → 1,11 |
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
#include <libc/dosexec.h> |
int execle(const char *path, const char *argv0, ... /*, const char **envp */) |
{ |
scan_ptr(); |
return spawnve(P_OVERLAY, path, (char *const *)&argv0, (char *const *)ptr); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execlp.c |
---|
0,0 → 1,12 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
#include <libc/dosexec.h> |
extern char * const *environ; |
int execlp(const char *path, const char *argv0, ...) |
{ |
return spawnvpe(P_OVERLAY, path, (char * const *)&argv0, environ); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execlpe.c |
---|
0,0 → 1,11 |
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
#include <libc/dosexec.h> |
int execlpe(const char *path, const char *argv0, ... /*, const char **envp */) |
{ |
scan_ptr(); |
return spawnvpe(P_OVERLAY, path, (char * const *)&argv0, (char * const *)ptr); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execv.c |
---|
0,0 → 1,11 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
extern char * const *environ; |
int execv(const char *path, char * const *argv) |
{ |
return spawnve(P_OVERLAY, path, argv, environ); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execve.c |
---|
0,0 → 1,9 |
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
int execve(const char *path, char * const argv[], char * const envp[]) |
{ |
return spawnve(P_OVERLAY, path, argv, envp); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execvp.c |
---|
0,0 → 1,11 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
extern char *const *environ; |
int execvp(const char *path, char * const argv[]) |
{ |
return spawnvpe(P_OVERLAY, path, argv, environ); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/execvpe.c |
---|
0,0 → 1,9 |
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <process.h> |
int execvpe(const char *path, char * const argv[], char * const envp[]) |
{ |
return spawnvpe(P_OVERLAY, path, argv, envp); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/fork.c |
---|
0,0 → 1,9 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <errno.h> |
#include <unistd.h> |
pid_t fork(void) |
{ |
errno = ENOMEM; /* The only other choice is EAGAIN, and we don't want that */ |
return -1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/fpathcon.c |
---|
0,0 → 1,10 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <errno.h> |
#include <unistd.h> |
#include <limits.h> |
/* ARGSUSED */ |
long fpathconf(int fildes, int name) |
{ |
return pathconf("/", name); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getcwd.c |
---|
0,0 → 1,27 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
#include <stdlib.h> |
#include <errno.h> |
#include <libc/farptrgs.h> |
#include <libc/dosio.h> |
static char * __cur_cwd; |
extern char* __get_curdir(void); |
char * getcwd(char *buf, size_t size) |
{ |
#ifndef min |
#define min(a,b) ((a)<(b)?(a):(b)) |
#endif |
size_t k; |
__cur_cwd=__get_curdir(); |
k=min(size,strlen(__cur_cwd)); |
memcpy(buf,__cur_cwd,k+1); |
return buf; |
} |
void __libc_set_cwd(char * p) |
{ |
__chdir(p); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getegid.c |
---|
0,0 → 1,9 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
gid_t |
getegid(void) |
{ |
return 42; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/geteuid.c |
---|
0,0 → 1,8 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
uid_t |
geteuid(void) |
{ |
return 42; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getgid.c |
---|
0,0 → 1,8 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
gid_t getgid(void) |
{ |
return 42; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getgroup.c |
---|
0,0 → 1,9 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
/* ARGSUSED */ |
int |
getgroups(int _size, gid_t *grouplist) |
{ |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getlogin.c |
---|
0,0 → 1,8 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <stdlib.h> |
char * getlogin(void) |
{ |
return "root"; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getopt.c |
---|
0,0 → 1,85 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <stdio.h> |
#include <string.h> |
#include <unistd.h> |
#include <libc/unconst.h> |
int opterr = 1, optind = 1, optopt = 0; |
char *optarg = 0; |
#define BADCH (int)'?' |
#define EMSG "" |
int |
getopt(int nargc, char *const nargv[], const char *ostr) |
{ |
static const char *place = EMSG; /* option letter processing */ |
char *oli; /* option letter list index */ |
char *p; |
if (!*place) |
{ |
if (optind >= nargc || *(place = nargv[optind]) != '-') |
{ |
place = EMSG; |
return(EOF); |
} |
if (place[1] && *++place == '-') |
{ |
++optind; |
place = EMSG; |
return(EOF); |
} |
} |
if ((optopt = (int)*place++) == (int)':' |
|| !(oli = strchr(ostr, optopt))) |
{ |
/* |
* if the user didn't specify '-' as an option, |
* assume it means EOF. |
*/ |
if (optopt == (int)'-') |
return EOF; |
if (!*place) |
++optind; |
if (opterr) |
{ |
if (!(p = strrchr(*nargv, '/'))) |
p = *nargv; |
else |
++p; |
fprintf(stderr, "%s: illegal option -- %c\n", p, optopt); |
} |
return BADCH; |
} |
if (*++oli != ':') |
{ /* don't need argument */ |
optarg = NULL; |
if (!*place) |
++optind; |
} |
else |
{ /* need an argument */ |
if (*place) /* no white space */ |
optarg = unconst(place, char *); |
else if (nargc <= ++optind) |
{ /* no arg */ |
place = EMSG; |
if (!(p = strrchr(*nargv, '/'))) |
p = *nargv; |
else |
++p; |
if (opterr) |
fprintf(stderr, "%s: option requires an argument -- %c\n", |
p, optopt); |
return BADCH; |
} |
else /* white space */ |
optarg = nargv[optind]; |
place = EMSG; |
++optind; |
} |
return optopt; /* dump back option letter */ |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getpgrp.c |
---|
0,0 → 1,8 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
pid_t |
getpgrp(void) |
{ |
return getpid(); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getpid.c |
---|
0,0 → 1,17 |
/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */ |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <libc/farptrgs.h> |
#include <libc/bss.h> |
#include <menuet/os.h> |
static int pid_count = -1; |
static pid_t my_pid; |
static struct process_table_entry __tmp_proctab; |
pid_t getpid(void) |
{ |
__menuet__get_process_table(&__tmp_proctab,PID_WHOAMI); |
return __tmp_proctab.pid; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getppid.c |
---|
0,0 → 1,7 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
pid_t getppid(void) |
{ |
return 1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/getuid.c |
---|
0,0 → 1,7 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
uid_t getuid(void) |
{ |
return 42; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/isatty.c |
---|
0,0 → 1,9 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
int isatty(int fd) |
{ |
if(fd==0 || fd==1) return 1; |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/link.c |
---|
0,0 → 1,13 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <sys/stat.h> /* For stat() */ |
#include <fcntl.h> /* For O_RDONLY, etc. */ |
#include <unistd.h> /* For read(), write(), etc. */ |
#include <limits.h> /* For PATH_MAX */ |
#include <utime.h> /* For utime() */ |
#include <errno.h> /* For errno */ |
int link(const char *path1, const char *path2) |
{ |
return -1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/lseek.c |
---|
0,0 → 1,9 |
#include <unistd.h> |
#include <errno.h> |
#include <libc/dosio.h> |
off_t lseek(int handle, off_t offset, int whence) |
{ |
return dosemu_lseek(handle,offset,whence); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/pathconf.c |
---|
0,0 → 1,25 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <errno.h> |
#include <unistd.h> |
#include <limits.h> |
long |
pathconf(const char *path, int name) |
{ |
switch (name) |
{ |
case _PC_LINK_MAX: return LINK_MAX; |
case _PC_MAX_CANON: return MAX_CANON; |
case _PC_MAX_INPUT: return MAX_INPUT; |
case _PC_NAME_MAX: return NAME_MAX; |
case _PC_PATH_MAX: return PATH_MAX; |
case _PC_PIPE_BUF: return PIPE_BUF; |
case _PC_CHOWN_RESTRICTED: return _POSIX_CHOWN_RESTRICTED; |
case _PC_NO_TRUNC: return _POSIX_NO_TRUNC; |
case _PC_VDISABLE: return _POSIX_VDISABLE; |
default: |
errno = EINVAL; |
return -1; |
} |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/pause.c |
---|
0,0 → 1,8 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
int pause(void) |
{ |
__menuet__delay100(1); |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/pipe.c |
---|
0,0 → 1,10 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <errno.h> |
int |
pipe(int _fildes[2]) |
{ |
errno = EACCES; |
return -1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/read.c |
---|
0,0 → 1,11 |
#include <stdlib.h> |
#include <fcntl.h> |
#include <unistd.h> |
#include <io.h> |
#include <libc/dosio.h> |
ssize_t read(int handle, void* buffer, size_t count) |
{ |
return dosemu_read(handle,buffer,count); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/rmdir.c |
---|
0,0 → 1,11 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <errno.h> |
#include <unistd.h> |
#include <libc/dosio.h> |
int |
rmdir(const char *dirname) |
{ |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/setgid.c |
---|
0,0 → 1,14 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <errno.h> |
int |
setgid(gid_t _gid) |
{ |
if (_gid != getgid()) |
{ |
errno = EPERM; |
return -1; |
} |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/setpgid.c |
---|
0,0 → 1,15 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <errno.h> |
/* ARGSUSED */ |
int |
setpgid(pid_t _pid, pid_t _pgid) |
{ |
if (_pgid != getpid()) |
{ |
errno = EPERM; |
return -1; |
} |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/setsid.c |
---|
0,0 → 1,9 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <errno.h> |
pid_t |
setsid(void) |
{ |
return getpid(); |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/setuid.c |
---|
0,0 → 1,12 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <errno.h> |
int |
setuid(uid_t uid) |
{ |
if (uid == getuid()) |
return 0; |
errno = EPERM; |
return -1; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/sleep.c |
---|
0,0 → 1,10 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <unistd.h> |
#include <time.h> |
#include <menuet/os.h> |
unsigned int sleep(unsigned int _seconds) |
{ |
for(;_seconds;_seconds--) __menuet__delay100(100); |
return _seconds; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/sysconf.c |
---|
0,0 → 1,29 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <errno.h> |
#include <unistd.h> |
#include <limits.h> |
#include <time.h> |
#include <stdio.h> |
#include <fcntl.h> |
long |
sysconf(int name) |
{ |
switch (name) |
{ |
case _SC_ARG_MAX: return ARG_MAX; |
case _SC_CHILD_MAX: return CHILD_MAX; |
case _SC_CLK_TCK: return CLOCKS_PER_SEC; |
case _SC_NGROUPS_MAX: return NGROUPS_MAX; |
case _SC_OPEN_MAX: return 255; |
case _SC_JOB_CONTROL: return -1; |
case _SC_SAVED_IDS: return -1; |
case _SC_STREAM_MAX: return _POSIX_STREAM_MAX; |
case _SC_TZNAME_MAX: return TZNAME_MAX; |
case _SC_VERSION: return _POSIX_VERSION; |
default: |
errno = EINVAL; |
return -1; |
} |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/ttyname.c |
---|
0,0 → 1,15 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include <libc/stubs.h> |
#include <unistd.h> |
static char dev_con[] = "con"; |
/* ARGSUSED */ |
char * |
ttyname(int fildes) |
{ |
if (isatty(fildes)) |
return dev_con; |
else |
return 0; |
} |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/unlink.s |
---|
0,0 → 1,5 |
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ |
#include<libc/asm.h> |
MK_C_SYM(unlink) |
jmp C_SYM(remove) |
/programs/develop/libraries/menuetlibc/src/libc/posix/unistd/write.c |
---|
0,0 → 1,22 |
#include <unistd.h> |
#include <stdlib.h> |
#include <string.h> |
#include <fcntl.h> |
#include <io.h> |
#include <errno.h> |
#include <libc/dosio.h> |
#include <libc/bss.h> |
#include<menuet/os.h> |
#include<menuet/console.h> |
static char *sbuf = 0; |
static size_t sbuflen = 0; |
static int write_count = -1; |
ssize_t write(int handle, const void* buffer, size_t count) |
{ |
return dosemu_write(handle,buffer,count); |
} |