llib-lstdc revision 1.1
11.1Scgd/* 21.1Scgd * Copyright (c) 1994, 1995 Jochen Pohl 31.1Scgd * All Rights Reserved. 41.1Scgd * 51.1Scgd * Redistribution and use in source and binary forms, with or without 61.1Scgd * modification, are permitted provided that the following conditions 71.1Scgd * are met: 81.1Scgd * 1. Redistributions of source code must retain the above copyright 91.1Scgd * notice, this list of conditions and the following disclaimer. 101.1Scgd * 2. Redistributions in binary form must reproduce the above copyright 111.1Scgd * notice, this list of conditions and the following disclaimer in the 121.1Scgd * documentation and/or other materials provided with the distribution. 131.1Scgd * 3. All advertising materials mentioning features or use of this software 141.1Scgd * must display the following acknowledgement: 151.1Scgd * This product includes software developed by Jochen Pohl for 161.1Scgd * The NetBSD Project. 171.1Scgd * 4. The name of the author may not be used to endorse or promote products 181.1Scgd * derived from this software without specific prior written permission. 191.1Scgd * 201.1Scgd * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 211.1Scgd * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 221.1Scgd * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 231.1Scgd * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 241.1Scgd * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 251.1Scgd * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 261.1Scgd * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 271.1Scgd * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 281.1Scgd * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 291.1Scgd * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 301.1Scgd * 311.1Scgd * $Id: llib-lstdc,v 1.1 1995/07/03 20:56:39 cgd Exp $ 321.1Scgd */ 331.1Scgd 341.1Scgd/* LINTLIBRARY */ 351.1Scgd 361.1Scgd#define _ANSI_SOURCE 371.1Scgd 381.1Scgd#include <assert.h> 391.1Scgd#include <ctype.h> 401.1Scgd#include <errno.h> 411.1Scgd#include <locale.h> 421.1Scgd#include <math.h> 431.1Scgd#include <setjmp.h> 441.1Scgd#include <signal.h> 451.1Scgd#include <stdarg.h> 461.1Scgd#include <stddef.h> 471.1Scgd#include <stdio.h> 481.1Scgd#include <stdlib.h> 491.1Scgd#include <string.h> 501.1Scgd#include <time.h> 511.1Scgd 521.1Scgd/* PROTOLIB1 */ 531.1Scgd 541.1Scgd/* 551.1Scgd * assert.h 561.1Scgd */ 571.1Scgd#ifdef __NetBSD__ 581.1Scgdvoid (__assert)(const char *expression, int line, const char *file); 591.1Scgd#else 601.1Scgdvoid (assert)(int expression); 611.1Scgd#endif 621.1Scgd 631.1Scgd/* 641.1Scgd * ctype.h 651.1Scgd */ 661.1Scgdint (isalnum)(int c); 671.1Scgdint (isalpha)(int c); 681.1Scgdint (iscntrl)(int c); 691.1Scgdint (isdigit)(int c); 701.1Scgdint (isgraph)(int c); 711.1Scgdint (islower)(int c); 721.1Scgdint (isprint)(int c); 731.1Scgdint (ispunct)(int c); 741.1Scgdint (isspace)(int c); 751.1Scgdint (isupper)(int c); 761.1Scgdint (isxdigit)(int c); 771.1Scgdint (tolower)(int c); 781.1Scgdint (toupper)(int c); 791.1Scgd 801.1Scgd/* 811.1Scgd * errno.h 821.1Scgd */ 831.1Scgdint (errno); 841.1Scgd 851.1Scgd/* 861.1Scgd * locale.h 871.1Scgd */ 881.1Scgdchar *(setlocale)(int category, const char *locale); 891.1Scgdstruct lconv *(localeconv)(void); 901.1Scgd 911.1Scgd/* 921.1Scgd * math.h 931.1Scgd */ 941.1Scgddouble (acos)(double x); 951.1Scgddouble (asin)(double x); 961.1Scgddouble (atan)(double x); 971.1Scgddouble (atan2)(double y, double x); 981.1Scgddouble (cos)(double x); 991.1Scgddouble (sin)(double x); 1001.1Scgddouble (tan)(double x); 1011.1Scgddouble (cosh)(double x); 1021.1Scgddouble (sinh)(double x); 1031.1Scgddouble (tanh)(double x); 1041.1Scgddouble (exp)(double x); 1051.1Scgddouble (frexp)(double value, int *exp); 1061.1Scgddouble (ldexp)(double x, int exp); 1071.1Scgddouble (log)(double x); 1081.1Scgddouble (log10)(double x); 1091.1Scgddouble (modf)(double value, double *iptr); 1101.1Scgddouble (pow)(double x, double y); 1111.1Scgddouble (sqrt)(double x); 1121.1Scgddouble (ceil)(double x); 1131.1Scgddouble (fabs)(double x); 1141.1Scgddouble (floor)(double x); 1151.1Scgddouble (fmod)(double x, double y); 1161.1Scgd 1171.1Scgd/* 1181.1Scgd * setjmp.h 1191.1Scgd */ 1201.1Scgdint (setjmp)(jmp_buf env); 1211.1Scgdvoid (longjmp)(jmp_buf env, int val); 1221.1Scgd 1231.1Scgd/* 1241.1Scgd * signal.h 1251.1Scgd */ 1261.1Scgdvoid (*(signal)(int sig, void (*func)(int)))(int); 1271.1Scgdint (raise)(int sig); 1281.1Scgd 1291.1Scgd/* 1301.1Scgd * stdio.h 1311.1Scgd */ 1321.1Scgdint (remove)(const char *filename); 1331.1Scgdint (rename)(const char *old, const char *new); 1341.1ScgdFILE *(tmpfile)(void); 1351.1Scgdchar *(tmpnam)(char *s); 1361.1Scgdint (fclose)(FILE *stream); 1371.1Scgdint (fflush)(FILE *stream); 1381.1ScgdFILE *(fopen)(const char *filename, const char *mode); 1391.1ScgdFILE *(freopen)(const char *filename, const char *mode, FILE *stream); 1401.1Scgdvoid (setbuf)(FILE *stream, char *buf); 1411.1Scgdint (setvbuf)(FILE *stream, char *buf, int mode, size_t size); 1421.1Scgd/* PRINTFLIKE2 */ 1431.1Scgdint (fprintf)(FILE *stream, const char *format, ...); 1441.1Scgd/* SCANFLIKE2 */ 1451.1Scgdint (fscanf)(FILE *stream, const char *format, ...); 1461.1Scgd/* PRINTFLIKE1 */ 1471.1Scgdint (printf)(const char *format, ...); 1481.1Scgd/* SCANFLIKE1 */ 1491.1Scgdint (scanf)(const char *format, ...); 1501.1Scgd/* PRINTFLIKE2 */ 1511.1Scgdint (sprintf)(char *s, const char *format, ...); 1521.1Scgd/* SCANFLIKE2 */ 1531.1Scgdint (sscanf)(const char *s, const char *format, ...); 1541.1Scgdint (vfprintf)(FILE *stream, const char *format, va_list arg); 1551.1Scgdint (vprintf)(const char *format, va_list arg); 1561.1Scgdint (vsprintf)(char *s, const char *format, va_list arg); 1571.1Scgdint (fgetc)(FILE *stream); 1581.1Scgd#ifdef __NetBSD__ 1591.1Scgdchar *(fgets)(char *s, size_t n, FILE *stream); 1601.1Scgd#else 1611.1Scgdchar *(fgets)(char *s, int n, FILE *stream); 1621.1Scgd#endif 1631.1Scgdint (fputc)(int c, FILE *stream); 1641.1Scgdint (fputs)(const char *s, FILE *stream); 1651.1Scgdint (getc)(FILE *stream); 1661.1Scgdint (getchar)(void); 1671.1Scgdchar *(gets)(char *s); 1681.1Scgdint (putc)(int c, FILE *stream); 1691.1Scgdint (putchar)(int c); 1701.1Scgdint (puts)(const char *s); 1711.1Scgdint (ungetc)(int c, FILE *stream); 1721.1Scgdsize_t (fread)(void *ptr, size_t size, size_t nmemb, FILE *stream); 1731.1Scgdsize_t (fwrite)(const void *ptr, size_t size, size_t nmemb, FILE *stream); 1741.1Scgdint (fgetpos)(FILE *stream, fpos_t *pos); 1751.1Scgdint (fseek)(FILE *stream, long offset, int whence); 1761.1Scgdint (fsetpos)(FILE *stream, const fpos_t *pos); 1771.1Scgd#ifdef __NetBSD__ 1781.1Scgdlong (ftell)(const FILE *stream); 1791.1Scgd#else 1801.1Scgdlong (ftell)(FILE *stream); 1811.1Scgd#endif 1821.1Scgdvoid (rewind)(FILE *stream); 1831.1Scgdvoid (clearerr)(FILE *stream); 1841.1Scgdint (feof)(FILE *stream); 1851.1Scgdint (ferror)(FILE *stream); 1861.1Scgdvoid (perror)(const char *s); 1871.1Scgd 1881.1Scgd/* 1891.1Scgd * stdlib.h 1901.1Scgd */ 1911.1Scgddouble (atof)(const char *nptr); 1921.1Scgdint (atoi)(const char *nptr); 1931.1Scgdlong (atol)(const char *nptr); 1941.1Scgddouble (strtod)(const char *nptr, char **endptr); 1951.1Scgdlong (strtol)(const char *nptr, char **endptr, int base); 1961.1Scgdunsigned long (strtoul)(const char *nptr, char **endptr, int base); 1971.1Scgdint (rand)(void); 1981.1Scgdvoid (srand)(unsigned seed); 1991.1Scgdvoid *(calloc)(size_t nmemb, size_t size); 2001.1Scgdvoid (free)(void *ptr); 2011.1Scgdvoid *(malloc)(size_t size); 2021.1Scgdvoid *(realloc)(void *ptr, size_t size); 2031.1Scgdvoid (abort)(void); 2041.1Scgdint (atexit)(void (*func)(void)); 2051.1Scgdvoid (exit)(int status); 2061.1Scgdchar *(getenv)(const char *name); 2071.1Scgdint (system)(const char *string); 2081.1Scgdvoid *(bsearch)(const void *key, const void *base, size_t nmemb, 2091.1Scgd size_t size, int (*compar)(const void *, const void *)); 2101.1Scgdvoid (qsort)(void *base, size_t nmemb, size_t size, 2111.1Scgd int (*compar)(const void *, const void *)); 2121.1Scgdint (abs)(int j); 2131.1Scgddiv_t (div)(int numer, int denom); 2141.1Scgdlong (labs)(long j); 2151.1Scgdldiv_t (ldiv)(long numer, long denom); 2161.1Scgdint (mblen)(const char *s, size_t n); 2171.1Scgdint (mbtowc)(wchar_t *PWC, const char *s, size_t n); 2181.1Scgdint (wctomb)(char *s, wchar_t wchar); 2191.1Scgdsize_t (mbstowcs)(wchar_t *pwcs, const char *s, size_t n); 2201.1Scgdsize_t (wcstombs)(char *s, const wchar_t *pwcs, size_t n); 2211.1Scgd 2221.1Scgd/* 2231.1Scgd * string.h 2241.1Scgd */ 2251.1Scgdvoid *(memcpy)(void *s1, const void *s2, size_t n); 2261.1Scgdvoid *(memmove)(void *s1, const void *s2, size_t n); 2271.1Scgdchar *(strcpy)(char *s1, const char *s2); 2281.1Scgdchar *(strncpy)(char *s1, const char *s2, size_t n); 2291.1Scgdchar *(strcat)(char *s1, const char *s2); 2301.1Scgdchar *(strncat)(char *s1, const char *s2, size_t n); 2311.1Scgdint (memcmp)(const void *s1, const void *s2, size_t n); 2321.1Scgdint (strcmp)(const char *s1, const char *s2); 2331.1Scgdint (strcoll)(const char *s1, const char *s2); 2341.1Scgdint (strncmp)(const char *s1, const char *s2, size_t n); 2351.1Scgdsize_t (strxfrm)(char *s1, const char *s2, size_t n); 2361.1Scgdvoid *(memchr)(const void *s, int c, size_t n); 2371.1Scgdchar *(strchr)(const char *s, int c); 2381.1Scgdsize_t (strcspn)(const char *s1, const char *s2); 2391.1Scgdchar *(strpbrk)(const char *s1, const char *s2); 2401.1Scgdchar *(strrchr)(const char *s1, int c); 2411.1Scgdsize_t (strspn)(const char *s1, const char *s2); 2421.1Scgdchar *(strstr)(const char *s1, const char *s2); 2431.1Scgdchar *(strtok)(char *s1, const char *s2); 2441.1Scgdvoid *(memset)(void *s, int c, size_t n); 2451.1Scgdchar *(strerror)(int errnom); 2461.1Scgdsize_t (strlen)(const char *s); 2471.1Scgd 2481.1Scgd/* 2491.1Scgd * time.h 2501.1Scgd */ 2511.1Scgdclock_t (clock)(void); 2521.1Scgddouble (difftime)(time_t time1, time_t time2); 2531.1Scgdtime_t (mktime)(struct tm *timeptr); 2541.1Scgdtime_t (time)(time_t *timer); 2551.1Scgdchar *(asctime)(const struct tm *timeptr); 2561.1Scgdchar *(ctime)(const time_t *timer); 2571.1Scgdstruct tm *(gmtime)(const time_t *timer); 2581.1Scgdstruct tm *(localtime)(const time_t *timer); 2591.1Scgdsize_t (strftime)(char *s, size_t maxsize, const char *format, 2601.1Scgd const struct tm *timeptr); 261