usr/src/head/stdlib.h
author stevel@tonic-gate
Tue, 14 Jun 2005 00:00:00 -0700
changeset 0 68f95e015346
child 1475 0c7070c5774f
permissions -rw-r--r--
OpenSolaris Launch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     5
 * Common Development and Distribution License, Version 1.0 only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     6
 * (the "License").  You may not use this file except in compliance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 * with the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
/*	Copyright (c) 1988 AT&T	*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
/*	  All Rights Reserved  	*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
#ifndef _STDLIB_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
#define	_STDLIB_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
#pragma ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 1.22	*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
#include <iso/stdlib_iso.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
#include <iso/stdlib_c99.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
#if defined(__EXTENSIONS__) || defined(_XPG4)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
#include <sys/wait.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
 * Allow global visibility for symbols defined in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
 * C++ "std" namespace in <iso/stdlib_iso.h>.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
#if __cplusplus >= 199711L
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
using std::div_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
using std::ldiv_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
using std::size_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
using std::abort;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
using std::abs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
using std::atexit;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
using std::atof;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
using std::atoi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
using std::atol;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
using std::bsearch;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
using std::calloc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
using std::div;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
using std::exit;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
using std::free;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
using std::getenv;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
using std::labs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
using std::ldiv;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
using std::malloc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
using std::mblen;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
using std::mbstowcs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
using std::mbtowc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
using std::qsort;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
using std::rand;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
using std::realloc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
using std::srand;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
using std::strtod;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
using std::strtol;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
using std::strtoul;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
using std::system;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
using std::wcstombs;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
using std::wctomb;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
extern "C" {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
#ifndef _UID_T
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
#define	_UID_T
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
#if defined(_LP64) || defined(_I32LPx)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
typedef	int	uid_t;			/* UID type		*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
#else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
typedef long	uid_t;			/* (historical version) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
#endif	/* !_UID_T */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
#if defined(__STDC__)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
/* large file compilation environment setup */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
#ifdef	__PRAGMA_REDEFINE_EXTNAME
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
#pragma redefine_extname	mkstemp		mkstemp64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
#else	/* __PRAGMA_REDEFINE_EXTNAME */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
#define	mkstemp			mkstemp64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
#endif	/* __PRAGMA_REDEFINE_EXTNAME */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
#endif	/* _FILE_OFFSET_BITS == 64 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
/* In the LP64 compilation environment, all APIs are already large file */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
#if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
#ifdef	__PRAGMA_REDEFINE_EXTNAME
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
#pragma redefine_extname	mkstemp64	mkstemp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
#else	/* __PRAGMA_REDEFINE_EXTNAME */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
#define	mkstemp64		mkstemp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
#endif	/* __PRAGMA_REDEFINE_EXTNAME */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
#endif	/* _LP64 && _LARGEFILE64_SOURCE */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
#if defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	(_POSIX_C_SOURCE - 0 >= 199506L) || defined(_REENTRANT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
extern int rand_r(unsigned int *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
extern void _exithandle(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
#if defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	(!defined(_STRICT_STDC) && !defined(_POSIX_C_SOURCE)) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
	defined(_XPG4)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
extern double drand48(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
extern double erand48(unsigned short *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
extern long jrand48(unsigned short *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
extern void lcong48(unsigned short *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
extern long lrand48(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
extern long mrand48(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
extern long nrand48(unsigned short *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
extern unsigned short *seed48(unsigned short *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
extern void srand48(long);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
extern int putenv(char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
extern void setkey(const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
#endif /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
 * swab() has historically been in <stdlib.h> as delivered from AT&T
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
 * and continues to be visible in the default compilation environment.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
 * As of Issue 4 of the X/Open Portability Guides, swab() was declared
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
 * in <unistd.h>. As a result, with respect to X/Open namespace the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
 * swab() declaration in this header is only visible for the XPG3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
 * environment.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
#if (defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
	(!defined(_STRICT_STDC__) && !defined(_POSIX_C_SOURCE))) && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
	(!defined(_XOPEN_SOURCE) || (defined(_XPG3) && !defined(_XPG4)))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
#ifndef	_SSIZE_T
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
#define	_SSIZE_T
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
#if defined(_LP64) || defined(_I32LPx)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
typedef long	ssize_t;	/* size of something in bytes or -1 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
#else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
typedef int	ssize_t;	/* (historical version) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
#endif	/* !_SSIZE_T */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
extern void swab(const char *, char *, ssize_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
#endif /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
#if defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
	!defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
	(defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
extern int	mkstemp(char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
#endif /* defined(__EXTENSIONS__) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
#if	defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
	    !defined(__PRAGMA_REDEFINE_EXTNAME))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
extern int	mkstemp64(char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
#endif	/* _LARGEFILE64_SOURCE... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
#if defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
	(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
	defined(_XPG4_2)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
extern long a64l(const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
extern char *ecvt(double, int, int *_RESTRICT_KYWD, int *_RESTRICT_KYWD);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
extern char *fcvt(double, int, int *_RESTRICT_KYWD, int *_RESTRICT_KYWD);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
extern char *gcvt(double, int, char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
extern int getsubopt(char **, char *const *, char **);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
extern int  grantpt(int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
extern char *initstate(unsigned, char *, size_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
extern char *l64a(long);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
extern char *mktemp(char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
extern char *ptsname(int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
extern long random(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
extern char *realpath(const char *_RESTRICT_KYWD, char *_RESTRICT_KYWD);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
extern char *setstate(const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
extern void srandom(unsigned);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
extern int  unlockpt(int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
/* Marked LEGACY in SUSv2 and removed in SUSv3 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
#if !defined(_XPG6) || defined(__EXTENSIONS__)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
extern int ttyslot(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
extern void *valloc(size_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
#endif /* !defined(_XPG6) || defined(__EXTENSIONS__) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
#endif /* defined(__EXTENSIONS__) || ... || defined(_XPG4_2) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
#if defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
	(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
	defined(_XPG6)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
extern int posix_openpt(int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
extern int setenv(const char *, const char *, int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
extern int unsetenv(const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
#if defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
	(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
extern void closefrom(int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
extern int dup2(int, int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
extern int fdwalk(int (*)(void *, int), void *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
extern char *qecvt(long double, int, int *, int *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
extern char *qfcvt(long double, int, int *, int *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
extern char *qgcvt(long double, int, char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
extern char *getcwd(char *, size_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
extern const char *getexecname(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
extern char *getlogin(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
extern int getopt(int, char *const *, const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
extern char *optarg;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
extern int optind, opterr, optopt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
extern char *getpass(const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
extern char *getpassphrase(const char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
extern int getpw(uid_t, char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
extern int isatty(int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
extern void *memalign(size_t, size_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
extern char *ttyname(int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
#if !defined(_STRICT_STDC) && defined(_LONGLONG_TYPE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
extern char *lltostr(long long, char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
extern char *ulltostr(unsigned long long, char *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
#endif	/* !defined(_STRICT_STDC) && defined(_LONGLONG_TYPE) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
#endif /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
#else /* not __STDC__ */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
#if defined(__EXTENSIONS__) || !defined(_XOPEN_OR_POSIX) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
	(_POSIX_C_SOURCE - 0 >= 199506L) || defined(_REENTRANT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
extern int rand_r();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
#endif	/* defined(__EXTENSIONS__) || defined(_REENTRANT) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
extern void _exithandle();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
#if defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) || defined(_XPG4)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
extern double drand48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
extern double erand48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
extern long jrand48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
extern void lcong48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
extern long lrand48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
extern long mrand48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
extern long nrand48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
extern unsigned short *seed48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
extern void srand48();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
extern int putenv();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
extern void setkey();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
#endif /* defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
#if (defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE)) && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
	(!defined(_XOPEN_SOURCE) || (defined(_XPG3) && !defined(_XPG4)))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
extern void swab();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   265
#if defined(__EXTENSIONS__) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   266
	!defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   267
	(defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   268
extern int	mkstemp();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   269
#endif	/* defined(__EXTENSIONS__) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   270
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   271
#if	defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   272
	    !defined(__PRAGMA_REDEFINE_EXTNAME))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   273
extern int	mkstemp64();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   274
#endif	/* _LARGEFILE64_SOURCE... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   275
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   276
#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   277
extern long a64l();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   278
extern char *ecvt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   279
extern char *fcvt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   280
extern char *gcvt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   281
extern int getsubopt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   282
extern int grantpt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   283
extern char *initstate();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   284
extern char *l64a();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   285
extern char *mktemp();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   286
extern char *ptsname();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   287
extern long random();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   288
extern char *realpath();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   289
extern char *setstate();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   290
extern void srandom();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   291
/* Marked LEGACY in SUSv2 and removed in SUSv3 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   292
#if !defined(_XPG6) || defined(__EXTENSIONS__)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   293
extern int ttyslot();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   294
extern void *valloc();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   295
#endif /* !defined(_XPG6) || defined(__EXTENSIONS__) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   296
#endif /* defined(__EXTENSIONS__) || ... || defined(_XPG4_2) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   297
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   298
#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || defined(_XPG6)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   299
extern int posix_openpt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   300
extern int setenv();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   301
extern int unsetenv();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   302
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   303
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   304
#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   305
extern void closefrom();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   306
extern int dup2();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   307
extern int fdwalk();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   308
extern char *qecvt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   309
extern char *qfcvt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   310
extern char *qgcvt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   311
extern char *getcwd();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   312
extern char *getexecname();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   313
extern char *getlogin();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   314
extern int getopt();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   315
extern char *optarg;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   316
extern int optind, opterr, optopt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   317
extern char *getpass();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   318
extern char *getpassphrase();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   319
extern int getpw();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   320
extern int isatty();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   321
extern void *memalign();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   322
extern char *ttyname();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   323
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   324
#if defined(_LONGLONG_TYPE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   325
extern char *lltostr();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   326
extern char *ulltostr();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   327
#endif  /* defined(_LONGLONG_TYPE) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   328
#endif	/* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   329
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   330
#endif	/* __STDC__ */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   331
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   332
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   333
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   334
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   335
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   336
#endif	/* _STDLIB_H */