source: trunk/minix/lib/ack/libp/outcpt.c@ 20

Last change on this file since 20 was 9, checked in by Mattia Monga, 14 years ago

Minix 3.1.2a

File size: 1.0 KB
Line 
1/* $Header: /cvsup/minix/src/lib/ack/libp/outcpt.c,v 1.1 2005/10/10 15:27:47 beng Exp $ */
2/*
3 * (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
4 *
5 * This product is part of the Amsterdam Compiler Kit.
6 *
7 * Permission to use, sell, duplicate or disclose this software must be
8 * obtained in writing. Requests for such permissions may be sent to
9 *
10 * Dr. Andrew S. Tanenbaum
11 * Wiskundig Seminarium
12 * Vrije Universiteit
13 * Postbox 7161
14 * 1007 MC Amsterdam
15 * The Netherlands
16 *
17 */
18
19/* Author: J.W. Stevenson */
20
21#include <pc_file.h>
22#include <pc_err.h>
23
24#define EINTR 4
25
26extern int errno;
27extern _trp();
28extern int _write();
29
30_flush(f) struct file *f; {
31 int i,n;
32
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);
42}
43
44_outcpt(f) struct file *f; {
45
46 f->flags &= ~ELNBIT;
47 f->ptr += f->size;
48 if ((f->count -= f->size) <= 0)
49 _flush(f);
50}
Note: See TracBrowser for help on using the repository browser.