|
|
其中“ [color="Red"]char*path_alloc(int *); ”这个函数在哪里定义的?
- /* Our own header, to be included *after* all standard system headers */
- #ifndef__ourhdr_h
- #define__ourhdr_h
- #include<sys/types.h>/* required for some of our prototypes */
- #include<stdio.h>/* for convenience */
- #include<stdlib.h>/* for convenience */
- #include<string.h>/* for convenience */
- #include<unistd.h>/* for convenience */
- #defineMAXLINE4096/* max line length */
- #defineFILE_MODE(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
- /* default file access permissions for new files */
- #defineDIR_MODE(FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)
- /* default permissions for new directories */
- typedefvoidSigfunc(int);/* for signal handlers */
- /* 4.3BSD Reno <signal.h> doesn't define SIG_ERR */
- #ifdefined(SIG_IGN) && !defined(SIG_ERR)
- #defineSIG_ERR((Sigfunc *)-1)
- #endif
- #definemin(a,b)((a) < (b) ? (a) : (b))
- #definemax(a,b)((a) > (b) ? (a) : (b))
- /* prototypes for our own functions */
- [color="red"]char*path_alloc(int *);/* {Prog pathalloc} */[/color]
- int open_max(void);/* {Prog openmax} */
- void clr_fl(int, int);/* {Prog setfl} */
- void set_fl(int, int);/* {Prog setfl} */
- void pr_exit(int);/* {Prog prexit} */
- void pr_mask(const char *);/* {Prog prmask} */
- Sigfunc*signal_intr(int, Sigfunc *);/* {Prog signal_intr_function} */
- int tty_cbreak(int);/* {Prog raw} */
- int tty_raw(int);/* {Prog raw} */
- int tty_reset(int);/* {Prog raw} */
- void tty_atexit(void);/* {Prog raw} */
- #ifdefECHO/* only if <termios.h> has been included */
- struct termios*tty_termios(void);/* {Prog raw} */
- #endif
- void sleep_us(unsigned int);/* {Ex sleepus} */
- ssize_t readn(int, void *, size_t);/* {Prog readn} */
- ssize_t writen(int, const void *, size_t);/* {Prog writen} */
- int daemon_init(void);/* {Prog daemoninit} */
- int s_pipe(int *);/* {Progs svr4_spipe bsd_spipe} */
- int recv_fd(int, ssize_t (*func)(int, const void *, size_t));
- /* {Progs recvfd_svr4 recvfd_43bsd} */
- int send_fd(int, int);/* {Progs sendfd_svr4 sendfd_43bsd} */
- int send_err(int, int, const char *);/* {Prog senderr} */
- int serv_listen(const char *);/* {Progs servlisten_svr4 servlisten_44bsd} */
- int serv_accept(int, uid_t *);/* {Progs servaccept_svr4 servaccept_44bsd} */
- int cli_conn(const char *);/* {Progs cliconn_svr4 cliconn_44bsd} */
- int buf_args(char *, int (*func)(int, char **));
- /* {Prog bufargs} */
- int ptym_open(char *);/* {Progs ptyopen_svr4 ptyopen_44bsd} */
- int ptys_open(int, char *);/* {Progs ptyopen_svr4 ptyopen_44bsd} */
- #ifdefTIOCGWINSZ
- pid_t pty_fork(int *, char *, const struct termios *,
- const struct winsize *);/* {Prog ptyfork} */
- #endif
- intlock_reg(int, int, int, off_t, int, off_t);
- /* {Prog lockreg} */
- #defineread_lock(fd, offset, whence, len) \
- lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
- #definereadw_lock(fd, offset, whence, len) \
- lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
- #definewrite_lock(fd, offset, whence, len) \
- lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
- #definewritew_lock(fd, offset, whence, len) \
- lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
- #defineun_lock(fd, offset, whence, len) \
- lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)
- pid_tlock_test(int, int, off_t, int, off_t);
- /* {Prog locktest} */
- #defineis_readlock(fd, offset, whence, len) \
- lock_test(fd, F_RDLCK, offset, whence, len)
- #defineis_writelock(fd, offset, whence, len) \
- lock_test(fd, F_WRLCK, offset, whence, len)
- voiderr_dump(const char *, ...);/* {App misc_source} */
- voiderr_msg(const char *, ...);
- voiderr_quit(const char *, ...);
- voiderr_ret(const char *, ...);
- voiderr_sys(const char *, ...);
- voidlog_msg(const char *, ...);/* {App misc_source} */
- voidlog_open(const char *, int, int);
- voidlog_quit(const char *, ...);
- voidlog_ret(const char *, ...);
- voidlog_sys(const char *, ...);
- voidTELL_WAIT(void);/* parent/child from {Sec race_conditions} */
- voidTELL_PARENT(pid_t);
- voidTELL_CHILD(pid_t);
- voidWAIT_PARENT(void);
- voidWAIT_CHILD(void);
- #endif/* __ourhdr_h */
复制代码 |
|