1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
/*
* $Revision: 1.1 $ *
*
* Here be declarations of routines and variables in the C library. * You
* must #include <sys/types.h> and <stdio.h> before this file.
*/
#if defined(DO_HAVE_UNISTD)
#include <unistd.h>
#endif /* defined(DO_HAVE_UNISTD) */
#if defined(DO_HAVE_VFORK)
#include <vfork.h>
#endif /* defined(DO_HAVE_VFORK) */
/* Generic pointer, used by memcpy, malloc, etc. */
/* =()<typedef @<POINTER>@ *POINTER;>()= */
typedef char *POINTER;
/* What is a file offset? Will not work unless long! */
/* =()<typedef @<OFFSET_T>@ OFFSET_T;>()= */
typedef long OFFSET_T;
/* What is the type of an object size? */
/* =()<typedef @<SIZE_T>@ SIZE_T;>()= */
typedef int SIZE_T;
/* What is the type of a passwd uid and gid, for use in chown(2)? */
/* =()<typedef @<UID_T>@ UID_T;>()= */
typedef int UID_T;
/* =()<typedef @<GID_T>@ GID_T;>()= */
typedef int GID_T;
/* =()<typedef @<PID_T>@ PID_T;>()= */
typedef int PID_T;
/* What should a signal handler return? */
/* =()<#define SIGHANDLER @<SIGHANDLER>@>()= */
#define SIGHANDLER void
#if defined(SIG_DFL)
/* What types of variables can be modified in a signal handler? */
/* =()<typedef @<SIGVAR>@ SIGVAR;>()= */
typedef int SIGVAR;
#endif /* defined(SIG_DFL) */
/* =()<#include @<STR_HEADER>@>()= */
#include <string.h>
/* =()<#include @<MEM_HEADER>@>()= */
#include <memory.h>
/*
* * It's a pity we have to go through these contortions, for broken *
* systems that have fd_set but not the FD_SET.
*/
#if defined(FD_SETSIZE)
#define FDSET fd_set
#else
#include <sys/param.h>
#if !defined(NOFILE)
error--
#define NOFILE to the number of files allowed on your machine!
#endif /* !defined(NOFILE) */
#if !defined(howmany)
#define howmany(x, y) (((x) + ((y) - 1)) / (y))
#endif /* !defined(howmany) */
#define FD_SETSIZE NOFILE
#define NFDBITS (sizeof (long) * 8)
typedef struct _FDSET {
long fds_bits[howmany(FD_SETSIZE, NFDBITS)];
} FDSET;
#define FD_SET(n, p) (p)->fds_bits[(n) / NFDBITS] |= (1 << ((n) % NFDBITS))
#define FD_CLR(n, p) (p)->fds_bits[(n) / NFDBITS] &= ~(1 << ((n) % NFDBITS))
#define FD_ISSET(n, p) ((p)->fds_bits[(n) / NFDBITS] & (1 << ((n) % NFDBITS)))
#define FD_ZERO(p) (void)memset((POINTER)(p), 0, sizeof *(p))
#endif /* defined(FD_SETSIZE) */
#if !defined(SEEK_SET)
#define SEEK_SET 0
#endif /* !defined(SEEK_SET) */
#if !defined(SEEK_END)
#define SEEK_END 2
#endif /* !defined(SEEK_END) */
/*
* * We must use #define to set FREEVAL, since "typedef void FREEVAL;"
* doesn't * work on some broken compilers, sigh.
*/
/* =()<#define FREEVAL @<FREEVAL>@>()= */
#define FREEVAL int
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#if 0 /* old style, use stdio, stdlib, unistd,
* string now */
extern int optind;
extern char *optarg;
#if !defined(__STDC__)
extern int errno;
#endif /* !defined(__STDC__) */
extern char *getenv();
extern char *inet_ntoa();
extern char *mktemp();
#if !defined(strerror)
extern char *strerror();
#endif /* !defined(strerror) */
extern long atol();
extern time_t time();
extern unsigned long inet_addr();
extern FREEVAL free();
extern POINTER malloc();
extern POINTER realloc();
#if defined(ACT_MMAP)
extern char *mmap();
#endif /* defined(ACT_MMAP) */
/* Some backward systems need this. */
extern FILE *popen();
/*
* This is in <mystring.h>, but not in some system string headers, so we put
* it here just in case.
*/
extern int strncasecmp();
/* =()<extern @<ABORTVAL>@ abort();>()= */
extern int abort();
/* =()<extern @<ALARMVAL>@ alarm();>()= */
extern int alarm();
/* =()<extern @<EXITVAL>@ exit();>()= */
extern void exit();
/* =()<extern @<GETPIDVAL>@ getpid();>()= */
extern int getpid();
/* =()<extern @<LSEEKVAL>@ lseek();>()= */
extern off_t lseek();
/* =()<extern @<QSORTVAL>@ qsort();>()= */
extern int qsort();
/* =()<extern @<SLEEPVAL>@ sleep();>()= */
extern int sleep();
/* =()<extern @<_EXITVAL>@ _exit();>()= */
extern int _exit();
#endif
|