home *** CD-ROM | disk | FTP | other *** search
- static char sccs_id[] = "@(#) write.c 1.2 " __DATE__ " HJR";
-
- /* write.c (c) Copyright 1990 H.Rogers */
-
- #include <errno.h>
-
- #include "fcntl.h"
-
- #include "sys/dev.h"
- #include "sys/unix.h"
-
- /*
- #include <stdio.h>
- #include "sys/os.h"
- int debug = 0;
- */
-
- int
- write (int fd, register void *data, register int nbyte)
- {
- register struct file *f;
-
- /*
- if (!debug && os_fopen(0x80,"debug",&debug)) debug = 0;
- if (debug)
- {
- char buf[128];
- int i;
-
- i = sprintf(buf,"write(%d,%x,%d)\n",fd,data,nbyte);
- os_fwrite(debug,buf,i,0);
- }
- */
-
- if (BADF (fd))
- {
- errno = EBADF;
- return (-1);
- }
-
- f = __u->file + fd;
-
- if ((f->oflag & O_OMASK) == O_RDONLY)
- {
- errno = EBADF;
- return (-1);
- }
-
- if (f->oflag & O_APPEND)
- (*(__dev[major (f->dev)].lseek)) (minor (f->dev), 0, 2, f);
-
- return ((*(__dev[major (f->dev)].write)) (minor (f->dev), data, nbyte, f));
- }
-