2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
8 #include "__posixc_intbase.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 struct PosixCIntBase
*PosixCBase
=
54 (struct PosixCIntBase
*)__aros_getbase_PosixCBase();
56 /* flush all streams opened for output */
61 ForeachNode (&PosixCBase
->stdio_files
, fn
)
63 if (fn
->File
.flags
& __POSIXC_STDIO_WRITE
)
65 fdesc
*fdesc
= __getfdesc(fn
->File
.fd
);
73 if (!Flush(fdesc
->fcb
->handle
))
75 errno
= __stdc_ioerr2errno(IoErr());
83 fdesc
*fdesc
= __getfdesc(stream
->fd
);
85 if (!fdesc
|| !(stream
->flags
& __POSIXC_STDIO_WRITE
))
91 if (Flush(fdesc
->fcb
->handle
))
95 errno
= __stdc_ioerr2errno(IoErr());