《转》搞定学习《unix环境高级编程…
来源:互联网 发布:淘宝商品点击率 编辑:程序博客网 时间:2024/06/10 11:06
apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。
先去那个网站downlowd apue的tar.gz包,然后解压至电脑中的某个目录,比如我的是在/home/user/下,然后进入解压目录apue.2e,修改Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e,这就是我们将要make的工作目录(存放apue.2e的目录),然后再进入std目录,用vi打开linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :1.$s/nawk/awk/g(注意前面有冒号)
然后(重点注意)
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打开apue.2e/threadctl/getenv3.c和getenv1.c,添加一行:#include "apue.h"
然后 make
然后按下面的步骤做
1. 超级用户权限登入 #cd /usr/include
2. 将apue.h和error.c两个文件copy到该目录下。(apue.h位于 your_apue_path/inlcude ;error.c位于your_apue_path/lib )
以我的了路径为例:
#cp /home/ucfree/apue.2e/inlcude/apue.h .
#cp /home/ucfree/apue.2e/lib/error.c . (实现apue.h中的出错处理函数)
3. 编辑apue.h
#sudo vim apue.h
在最后一行 #endif 前面添加一行 #include “error.c”
:wq 保存,退出.
4.err_quit跟err_sys是作者自己定义的错误处理函数,需要单独定义头文件
在/usr/include 下新建一个名为myerr.h的文件
拷贝下边的内容到myerr.h(其实此头文件在原书的附录B中)
QUOTE:#include "apue.h"
#include
#include
static void err_doit(int, int, const char *, va_list);
void
err_ret(const char *fmt, ...)
{
}
void
err_sys(const char *fmt, ...)
{
}
void
err_exit(int error, const char *fmt, ...)
{
}
void
err_dump(const char *fmt, ...)
{
}
void
err_msg(const char *fmt, ...)
{
}
void
err_quit(const char *fmt, ...)
{
}
static void
err_doit(int errnoflag, int error, const char *fmt, va_listap)
{
}
然后在你需要使用这几种错误处理函数的程序源代码里加入
#include "myerr.h"
这样你就可以运行下载的apue程序了.
使用源代码:
1、知道源代码的软连接与位置
sdoning@ubuntu:~/apue/apue.2e$ ll fig1.3
lrwxrwxrwx 1 sdoning sdoning 10 2010-11-27 07:27 fig1.3 ->file/ls1.c
2、进入file目录
sdoning@ubuntu:~/apue/apue.2e/file$ ls
access
access.c
cdpwd
cdpwd.c
changemod
changemod.c
devrdev
3、运行
sdoning@ubuntu:~/apue/apue.2e/file$./ls1 /home
..
sdoning
.
- 《转》搞定学习《unix环境高级编程…
- Unix高级环境编程 学习
- 《UNIX环境高级编程》学习
- UNIX环境高级编程(学习笔记)
- Ubuntu下 学习Unix环境高级编程
- 《Unix环境高级编程》学习笔记
- unix环境高级编程 学习笔记3
- unix环境高级编程 学习笔记4
- 《UNIX环境高级编程》学习总结
- Unix环境高级编程 第一章 学习笔记
- 《Unix环境高级编程》学习笔录
- Unix环境高级编程学习笔记整理
- 《unix环境高级编程》学习之 --- vfork()
- 学习《Unix环境高级编程》之问题
- 《UNIX环境高级编程》学习经验总结
- 《Unix环境高级编程》学习之用户
- UNIX环境高级编程学习笔记
- UNIX环境高级编程学习总结
- test_return LotteryClient
- 链表反转 58面试“留念”
- 我的博客今天0岁200天了,我领取了…
- layoutSubviews 和 layoutIf…
- 关于request.getRealPath(…
- 《转》搞定学习《unix环境高级编程…
- 对应iPhone5 长屏幕的方法 我找到…
- 突然发现,MarsEdit可以离线…
- 后台拿到Json前台Jquery转换为JS object
- test MarsEdit
- static 关键字 整理
- C 实现冒泡排序
- 在Mac下用Eclipse看Java的源码
- union:C/C++语言关键字 内存使用