安装apue.h
2017-05-30 13:59:09 水落 阅读数 551更多
分类专栏: Unix环境高级编程
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013961718/article/details/72809726
下载: src.3e.tar.gz http://www.apuebook.com/src.3e.tar.gz
解压: tar xvf src.3e.tar.gz
安装相应库: sudo apt-get install libbsd-dev
进入到apue.3e目录,执行: make
cp ./include/apue.h /usr/include/
cp ./lib/libapue.a /usr/local/lib/
编译时链接到相应库: gcc -o 1-3 1-3.c -lapue
apue.h是作者自己写的一个文件,包含了常用的头文件,系统不自带。其中包含了常用的头文件,以及出错处理函数的定义。使用起来确实很方便。
apue.h内容如下:
/*
Default file access permissions for new files.
*/
/*
Default permissions for new directories.
*/
typedef void Sigfunc(int); /* for signal handlers */
/*
int tty_cbreak(int); /* Figure 18.20 /
int tty_raw(int); / Figure 18.20 /
int tty_reset(int); / Figure 18.20 /
void tty_atexit(void); / Figure 18.20 */
void sleep_us(unsigned int); /* Exercise 14.6 /
ssize_t readn(int, void , size_t); /* Figure 14.29 /
ssize_t writen(int, const void , size_t); /* Figure 14.29 /
void daemonize(const char ); /* Figure 13.1 */
int s_pipe(int ); / Figures 17.6 and 17.13 /
int recv_fd(int, ssize_t (func)(int,
const void , size_t));/ Figures 17.21 and 17.23 /
int send_fd(int, int); / Figures 17.20 and 17.22 /
int send_err(int, int,
const char ); /* Figure 17.19 /
int serv_listen(const char ); /* Figures 17.10 and 17.15 /
int serv_accept(int, uid_t ); /* Figures 17.11 and 17.16 */
int cli_conn(const char ); / Figures 17.12 and 17.17 /
int buf_args(char , int (*func)(int,
char **)); /* Figure 17.32 */
int ptym_open(char , int); / Figures 19.8, 19.9, and 19.10 /
int ptys_open(char ); /* Figures 19.8, 19.9, and 19.10 */
pid_t pty_fork(int , char , int, const struct termios ,
const struct winsize ); /* Figure 19.11 */
int lock_reg(int, int, int, off_t, int, off_t); /* Figure 14.5 */
lock_reg((fd), F_SETLK, F_RDLCK, (offset), (whence), (len))
lock_reg((fd), F_SETLKW, F_RDLCK, (offset), (whence), (len))
lock_reg((fd), F_SETLK, F_WRLCK, (offset), (whence), (len))
lock_reg((fd), F_SETLKW, F_WRLCK, (offset), (whence), (len))
lock_reg((fd), F_SETLK, F_UNLCK, (offset), (whence), (len))
pid_t lock_test(int, int, off_t, int, off_t); /* Figure 14.6 */
(lock_test((fd), F_RDLCK, (offset), (whence), (len)) == 0)
(lock_test((fd), F_WRLCK, (offset), (whence), (len)) == 0)
void err_dump(const char , ...); / Appendix B /
void err_msg(const char , ...);
void err_quit(const char , ...);
void err_exit(int, const char , ...);
void err_ret(const char , ...);
void err_sys(const char , ...);
void log_msg(const char , ...); / Appendix B /
void log_open(const char , int, int);
void log_quit(const char , ...);
void log_ret(const char , ...);
void log_sys(const char *, ...);
void TELL_WAIT(void); /* parent/child from Section 8.9 */
void TELL_PARENT(pid_t);
void TELL_CHILD(pid_t);
void WAIT_PARENT(void);
void WAIT_CHILD(void);
想要使用,还要进行下面操作,完成相关配置.
在http://www.apuebook.com/下载src.tar.gz源代码的压缩包。
1、解压至/home/user/目录下
2、修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e
3、返回至apue.2e目录下面,修改linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :%s/nawk/awk/g
4、make
5、将/home/user/apue.2e/include/apue.h和/home/user/apue.2e/lib/error.c复制到/usr/include目录下
然后就可以方便的使用apue.h编译《unix高级环境编程》的的程序了
原文:https://www.cnblogs.com/yasepix/p/11610382.html