2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
5 ANSI C function fflush().
8 #include "__arosc_privdata.h"
10 #include <exec/types.h>
11 #include <exec/lists.h>
12 #include <dos/dosextens.h>
13 #include <proto/exec.h>
14 #include <proto/dos.h>
19 /*****************************************************************************
30 Flush a stream. If the stream is an input stream, then the stream
31 is synchronised for unbuffered I/O. If the stream is an output
32 stream, then any buffered data is written.
35 stream - Flush this stream. May be NULL. In this case, all
36 output streams are flushed.
39 0 on success or EOF on error.
51 ******************************************************************************/
53 /* flush all streams opened for output */
58 ForeachNode (&__stdio_files
, fn
)
60 if (fn
->File
.flags
& _STDIO_WRITE
)
62 fdesc
*fdesc
= __getfdesc(fn
->File
.fd
);
70 if (!Flush((BPTR
)fdesc
->fcb
->fh
))
72 errno
= IoErr2errno(IoErr());
80 fdesc
*fdesc
= __getfdesc(stream
->fd
);
82 if (!fdesc
|| !(stream
->flags
& _STDIO_WRITE
))
88 if (Flush((BPTR
)fdesc
->fcb
->fh
))
92 errno
= IoErr2errno(IoErr());