Print this page
5187 missing functions in stdlib.h : mkostemp, mkostemps & mkdtemp
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
@@ -92,26 +92,34 @@
#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname mkstemp mkstemp64
#pragma redefine_extname mkstemps mkstemps64
+#pragma redefine_extname mkostemp mkostemp64
+#pragma redefine_extname mkostemps mkostemps64
#else /* __PRAGMA_REDEFINE_EXTNAME */
#define mkstemp mkstemp64
#define mkstemps mkstemps64
+#define mkostemp mkostemp64
+#define mkostemps mkostemps64
#endif /* __PRAGMA_REDEFINE_EXTNAME */
#endif /* _FILE_OFFSET_BITS == 64 */
/* In the LP64 compilation environment, all APIs are already large file */
#if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname mkstemp64 mkstemp
#pragma redefine_extname mkstemps64 mkstemps
+#pragma redefine_extname mkostemp64 mkostemp
+#pragma redefine_extname mkostemps64 mkostemps
#else /* __PRAGMA_REDEFINE_EXTNAME */
#define mkstemp64 mkstemp
#define mkstemps64 mkstemps
+#define mkostemp64 mkostemp
+#define mkostemps64 mkostemps
#endif /* __PRAGMA_REDEFINE_EXTNAME */
#endif /* _LP64 && _LARGEFILE64_SOURCE */
#if defined(__EXTENSIONS__) || \
@@ -176,10 +184,24 @@
#if !defined(_XPG4_2) || defined(__EXTENSIONS__)
extern int mkstemps64(char *, int);
#endif
#endif /* _LARGEFILE64_SOURCE... */
+#if !defined(_STRICT_SYMBOLS) || defined(_XPG7)
+extern char *mkdtemp(char *);
+#endif /* !defined(_STRICT_SYMBOLS) || defined(_XPG7) */
+
+#if !defined(_STRICT_SYMBOLS)
+extern int mkostemp(char *, int);
+extern int mkostemps(char *, int, int);
+#if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
+ !defined(__PRAGMA_REDEFINE_EXTNAME))
+extern int mkostemp64(char *, int);
+extern int mkostemps64(char *, int, int);
+#endif /* defined(_LARGEFILE64_SOURCE) || !((_FILE_OFFSET_BITS == 64) ... */
+#endif /* !defined(_STRICT_SYMBOLS) */
+
#if defined(__EXTENSIONS__) || \
(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
defined(_XPG4_2)
extern long a64l(const char *);
extern char *ecvt(double, int, int *_RESTRICT_KYWD, int *_RESTRICT_KYWD);