summaryrefslogtreecommitdiff
path: root/ace/os_include/stdio.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/os_include/stdio.h')
-rw-r--r--ace/os_include/stdio.h72
1 files changed, 66 insertions, 6 deletions
diff --git a/ace/os_include/stdio.h b/ace/os_include/stdio.h
index 0920d985eec..25034a99eb8 100644
--- a/ace/os_include/stdio.h
+++ b/ace/os_include/stdio.h
@@ -2,19 +2,19 @@
//=============================================================================
/**
- * @file stdio.h
+ * @file os_stdio.h
*
* standard buffered input/output
*
* $Id$
*
- * @author Don Hinton <dhinton@ieee.org>
+ * @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
*/
//=============================================================================
-#ifndef ACE_OS_INCLUDE_STDIO_H
-#define ACE_OS_INCLUDE_STDIO_H
+#ifndef ACE_OS_INCLUDE_OS_STDIO_H
+#define ACE_OS_INCLUDE_OS_STDIO_H
#include "ace/pre.h"
@@ -24,12 +24,72 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+// NOTE: stdarg.h must be #included before stdio.h on LynxOS.
#include "ace/os_include/stdarg.h"
#include "ace/os_include/stddef.h"
#if !defined (ACE_LACKS_STDIO_H)
-# include /**/ <stdio.h>
+# include /**/ <stdio.h>
#endif /* !ACE_LACKS_STDIO_H */
+// Place all additions (especially function declarations) within extern "C" {}
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#if !defined (ACE_WIN32) && !defined (INTEGRITY)
+# define ACE_MAX_USERID L_cuserid
+#endif /*!ACE_WIN32*/
+
+// this is a nasty hack to get around problems with the
+// pSOS definition of BUFSIZ as the config table entry
+// (which is valued using the LC_BUFSIZ value anyway)
+#if defined (ACE_PSOS)
+# if defined (BUFSIZ)
+# undef BUFSIZ
+# endif /* defined (BUFSIZ) */
+# define BUFSIZ LC_BUFSIZ
+#endif /* defined (ACE_PSOS) */
+
+#if defined (BUFSIZ)
+# define ACE_STREAMBUF_SIZE BUFSIZ
+#else
+# define ACE_STREAMBUF_SIZE 1024
+#endif /* BUFSIZ */
+
+#if defined (ACE_WIN32) && !defined (ACE_PSOS)
+// The following are #defines and #includes that are specific to
+// WIN32.
+# if defined (ACE_HAS_WINCE)
+# define ACE_STDIN _fileno (stdin)
+# define ACE_STDOUT _fileno (stdout)
+# define ACE_STDERR _fileno (stderr)
+# else
+# define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE)
+# define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE)
+# define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE)
+# endif // ACE_HAS_WINCE
+// The following are #defines and #includes that are specific to UNIX.
+#else /* !ACE_WIN32 */
+# define ACE_STDIN 0
+# define ACE_STDOUT 1
+# define ACE_STDERR 2
+#endif /* ACE_WIN32 */
+
+#if defined (ACE_PSOS_SNARFS_HEADER_INFO)
+ // Header information snarfed from compiler provided header files
+ // that are not included because there is already an identically
+ // named file provided with pSOS, which does not have this info
+ // from compiler supplied stdio.h
+ FILE *fdopen(int, const char *);
+ char *tempnam(const char *, const char *);
+ int fileno(FILE *);
+#endif /* ACE_PSOS_SNARFS_HEADER_INFO */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_STDIO_H */
+#endif /* ACE_OS_INCLUDE_OS_STDIO_H */