LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1087|回复: 1

UNIX环境高级编程头文件包含函数的问题

[复制链接]
发表于 2006-10-7 22:20:30 | 显示全部楼层 |阅读模式
其中“ [color="Red"]char*path_alloc(int *); ”这个函数在哪里定义的?

  1. /* Our own header, to be included *after* all standard system headers */

  2. #ifndef__ourhdr_h
  3. #define__ourhdr_h

  4. #include<sys/types.h>/* required for some of our prototypes */
  5. #include<stdio.h>/* for convenience */
  6. #include<stdlib.h>/* for convenience */
  7. #include<string.h>/* for convenience */
  8. #include<unistd.h>/* for convenience */

  9. #defineMAXLINE4096/* max line length */

  10. #defineFILE_MODE(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
  11. /* default file access permissions for new files */
  12. #defineDIR_MODE(FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)
  13. /* default permissions for new directories */

  14. typedefvoidSigfunc(int);/* for signal handlers */

  15. /* 4.3BSD Reno <signal.h> doesn't define SIG_ERR */
  16. #ifdefined(SIG_IGN) && !defined(SIG_ERR)
  17. #defineSIG_ERR((Sigfunc *)-1)
  18. #endif

  19. #definemin(a,b)((a) < (b) ? (a) : (b))
  20. #definemax(a,b)((a) > (b) ? (a) : (b))

  21. /* prototypes for our own functions */
  22. [color="red"]char*path_alloc(int *);/* {Prog pathalloc} */[/color]
  23. int open_max(void);/* {Prog openmax} */
  24. void clr_fl(int, int);/* {Prog setfl} */
  25. void set_fl(int, int);/* {Prog setfl} */
  26. void pr_exit(int);/* {Prog prexit} */
  27. void pr_mask(const char *);/* {Prog prmask} */
  28. Sigfunc*signal_intr(int, Sigfunc *);/* {Prog signal_intr_function} */

  29. int tty_cbreak(int);/* {Prog raw} */
  30. int tty_raw(int);/* {Prog raw} */
  31. int tty_reset(int);/* {Prog raw} */
  32. void tty_atexit(void);/* {Prog raw} */
  33. #ifdefECHO/* only if <termios.h> has been included */
  34. struct termios*tty_termios(void);/* {Prog raw} */
  35. #endif

  36. void sleep_us(unsigned int);/* {Ex sleepus} */
  37. ssize_t readn(int, void *, size_t);/* {Prog readn} */
  38. ssize_t writen(int, const void *, size_t);/* {Prog writen} */
  39. int daemon_init(void);/* {Prog daemoninit} */

  40. int s_pipe(int *);/* {Progs svr4_spipe bsd_spipe} */
  41. int recv_fd(int, ssize_t (*func)(int, const void *, size_t));
  42. /* {Progs recvfd_svr4 recvfd_43bsd} */
  43. int send_fd(int, int);/* {Progs sendfd_svr4 sendfd_43bsd} */
  44. int send_err(int, int, const char *);/* {Prog senderr} */
  45. int serv_listen(const char *);/* {Progs servlisten_svr4 servlisten_44bsd} */
  46. int serv_accept(int, uid_t *);/* {Progs servaccept_svr4 servaccept_44bsd} */
  47. int cli_conn(const char *);/* {Progs cliconn_svr4 cliconn_44bsd} */
  48. int buf_args(char *, int (*func)(int, char **));
  49. /* {Prog bufargs} */

  50. int ptym_open(char *);/* {Progs ptyopen_svr4 ptyopen_44bsd} */
  51. int ptys_open(int, char *);/* {Progs ptyopen_svr4 ptyopen_44bsd} */
  52. #ifdefTIOCGWINSZ
  53. pid_t pty_fork(int *, char *, const struct termios *,
  54.   const struct winsize *);/* {Prog ptyfork} */
  55. #endif

  56. intlock_reg(int, int, int, off_t, int, off_t);
  57. /* {Prog lockreg} */
  58. #defineread_lock(fd, offset, whence, len) \
  59. lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
  60. #definereadw_lock(fd, offset, whence, len) \
  61. lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
  62. #definewrite_lock(fd, offset, whence, len) \
  63. lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
  64. #definewritew_lock(fd, offset, whence, len) \
  65. lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
  66. #defineun_lock(fd, offset, whence, len) \
  67. lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)

  68. pid_tlock_test(int, int, off_t, int, off_t);
  69. /* {Prog locktest} */

  70. #defineis_readlock(fd, offset, whence, len) \
  71. lock_test(fd, F_RDLCK, offset, whence, len)
  72. #defineis_writelock(fd, offset, whence, len) \
  73. lock_test(fd, F_WRLCK, offset, whence, len)

  74. voiderr_dump(const char *, ...);/* {App misc_source} */
  75. voiderr_msg(const char *, ...);
  76. voiderr_quit(const char *, ...);
  77. voiderr_ret(const char *, ...);
  78. voiderr_sys(const char *, ...);

  79. voidlog_msg(const char *, ...);/* {App misc_source} */
  80. voidlog_open(const char *, int, int);
  81. voidlog_quit(const char *, ...);
  82. voidlog_ret(const char *, ...);
  83. voidlog_sys(const char *, ...);

  84. voidTELL_WAIT(void);/* parent/child from {Sec race_conditions} */
  85. voidTELL_PARENT(pid_t);
  86. voidTELL_CHILD(pid_t);
  87. voidWAIT_PARENT(void);
  88. voidWAIT_CHILD(void);

  89. #endif/* __ourhdr_h */
复制代码
发表于 2006-10-11 17:01:05 | 显示全部楼层
不知道,,我都是用所有头文件 做了一个 csstd.out

在vim 里 :cs a csstd.out 后, Ctrl-\,s 搜索来的,,

或是直接 grep ,就是麻烦一些
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表