summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>1999-05-13 13:31:53 +0000
committerJarkko Hietaniemi <jhi@iki.fi>1999-05-13 13:31:53 +0000
commit767df6a1b5239f22c97e50608c6c8ba4a916826d (patch)
treed5cacc2c6c85a51adb98517b40fb801722ef87fe /util.c
parentcc105dabc17d2d0d984264ae3339e92d0a61358c (diff)
downloadperl-767df6a1b5239f22c97e50608c6c8ba4a916826d.tar.gz
Still fflushing strong.
p4raw-id: //depot/cfgperl@3409
Diffstat (limited to 'util.c')
-rw-r--r--util.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/util.c b/util.c
index 9ea0851204..79b9f4928e 100644
--- a/util.c
+++ b/util.c
@@ -3195,3 +3195,37 @@ get_vtbl(int vtbl_id)
return result;
}
+I32
+my_fflush_all(void)
+{
+#ifdef FFLUSH_NULL
+ return fflush(NULL);
+#else
+ long open_max = -1;
+# if defined(FFLUSH_ALL) && defined(STDIO_STREAM_ARRAY)
+# if defined(HAS_SYSCONF) && defined(_SC_OPEN_MAX)
+ open_max = sysconf(_SC_OPEN_MAX);
+# else
+# ifdef FOPEN_MAX
+# open_max = FOPEN_MAX;
+# else
+# ifdef OPEN_MAX
+# open_max = OPEN_MAX;
+# else
+# ifdef _NFILE
+# open_max = _NFILE;
+# endif
+# endif
+# endif
+# endif
+ if (open_max > 0) {
+ long i;
+ for (i = 0; i < open_max; i++)
+ fflush(&STDIO_STREAM_ARRAY[i]);
+ return 0;
+ }
+# endif
+ SETERRNO(EBADF,RMS$_IFI);
+ return EOF;
+#endif
+}