. service tells you which device it couldn't stat
[minix3.git] / lib / ack / libp / outcpt.c
blob98b02e5b3c98c8e56ac8845fc8f4b5b0a7b09c7f
1 /* $Header$ */
2 /*
3 * (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
5 * This product is part of the Amsterdam Compiler Kit.
7 * Permission to use, sell, duplicate or disclose this software must be
8 * obtained in writing. Requests for such permissions may be sent to
10 * Dr. Andrew S. Tanenbaum
11 * Wiskundig Seminarium
12 * Vrije Universiteit
13 * Postbox 7161
14 * 1007 MC Amsterdam
15 * The Netherlands
19 /* Author: J.W. Stevenson */
21 #include <pc_file.h>
22 #include <pc_err.h>
24 #define EINTR 4
26 extern int errno;
27 extern _trp();
28 extern int _write();
30 _flush(f) struct file *f; {
31 int i,n;
33 f->ptr = f->bufadr;
34 n = f->buflen - f->count;
35 if (n <= 0)
36 return;
37 f->count = f->buflen;
38 if ((i = _write(f->ufd,f->bufadr,n)) < 0 && errno == EINTR)
39 return;
40 if (i != n)
41 _trp(EWRITE);
44 _outcpt(f) struct file *f; {
46 f->flags &= ~ELNBIT;
47 f->ptr += f->size;
48 if ((f->count -= f->size) <= 0)
49 _flush(f);