apue配置问题

《UNIX环境高级编程》中apue.h的问题

运行程序清单1-1(列出一个目录中的所有文件)

提示 "错误:apue.h:没有那个文件或目录".

很是受打击,果断google解决之。

apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。

去http://www.apuebook.com/下载src.tar.gz包,然后解压至电脑中的某个目录,比如我的是在/home/user/下

[email protected]:~$ sudo tar xzf src.tar.gz

进入解压目录apue.2e,修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e

进入std目录,修改linux.mk,将里面的nawk全部改为awk。

复制apue.h和error.c

将apue.h和error.c两个文件copy到/usr/include目录下。(apue.h位于 your_apue_path/inlcude ; error.c位于your_apue_path/lib )

以我的路径为例:

[email protected]:/usr/include$ cp /home/user/apue.2e/inlcude/apue.h apue.h

[email protected]:/usr/include$ cp /home/user/apue.2e/lib/error.c error.c (实现apue.h中的出错处理函数)

修改apue.h./

在最后一行#endif  前面添加一行 #include "error.c"

貌似这样就OK了。

分类: UNIX

时间: 2024-10-11 09:22:40

apue配置问题的相关文章

unix环境高级编程(第三版)中apue.h文件的配置问题

最近刚开始学习unix环境高级编程(第三版),其中有个作者自己写的apue.h文件,在这归总下相应的配置方法,希望对有需要的朋友们有所帮助 首先http://www.apuebook.com/code3e.html 上去下载相应的压缩包,注意自己书的版本. 下载完成之后,鉴于大多数朋友学习linux都是基于虚拟机的,所以顺便附上虚拟机与本地主机传输文件的方式 首先下载SSH Secure Shell 这个工具,然后直接点击quick connect, 弹出如下界面,输入虚拟机的ip地址,和登录用

UNIX 高级编程(第二版) apue.h配置问题

在第二版的UNIX高级编程中,apue.h头文件下载后,编译过程中出现无法编译的问题,解决方法如下: 在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/n

[APUE]进程控制(上)

一.进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper).该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程.进程ID 1是init进程,在自举(bootstrapping)过程结束时由内核调用.该进程的程序文件在UNIX的早期版本中是/etc/init,在较新版本中是/sbin/init.此进程负责在内核自举后启动一个UNIX系统.init通常读与系统有关的初始化(/etc/rc*文件),并将系统引导到一个状态(例如多用户).init进程决不会终止.它是

Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字 . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程 (APU

[APUE]UNIX进程的环境(下)

一.共享库 共享库使得可执行文件中不再需要包含常用的库函数,而只需在所有进程都可存取的存储区中保存这种库例程的一个副本.程序第一次执行的时候或第一次调用某个库函数的时候,用动态链接方法将程序与共享库函数相链接,这减少了每个可执行文件的长度,但增加了一些运行时间开销.另一个优点就是可以用库函数的新版本来替换老版本而无需对该库的程序重新链接编译. 不同的系统使用不同的方法说明程序是否需要使用共享库.比较典型的有cc和ld命令的可选项. 二. 存储器分配 ANSI C说明了三个存储空间动态分配的函数(

apue第四章 文件和目录

函数stat,fstat,fstatat, lstat #include <sys/stat.h> int stat(const char *restrict pathname, struct stat *restrict buf); int fstat(int fd, struct stat *buf); int lstat(const char *restrict pathname, struct stat *restrict buf); int lstat(int fd, const c

APUE(4)---文件和目录 (2)

umask函数为进程设置文件模式创建屏蔽字,并返回之前的值,这是少数几个没有出错返回函数中的一个.其中cmask是9个常量(S_IR/W/XUSR.S_IR/W/XGRP.S_IR/W/XOTH)中的若干个按位“或”构成的. #include<sys/stat.h> mode_t umask(mode_t cmask); //返回值:之前的文件模式创建屏蔽字 #include<apue.h> #include<fcntl.h> #define RWRWRW (S_IRU

APUE(4)---文件和目录 (1)

一.引言 上一章执行I/O的基本函数(打开文件.读文件和写文件),本章将描述文件系统的其他特征和文件的性质,我们将从stat函数开始,并逐个说明stat结构的每一个成员以了解文件的所有属性.在此过程中,我们将说明修改这些属性的各个函数. 二.函数stat.fstat.fstatat和lstat #include <sys/stat.h> int stat(const char *restrict pathname, struct stat *restrict buf); int fstat(i

APUE fig 1.10示例代码的完善--对提示符及输入回车的优化

APUE 第3版第15页的shell2.c示例程序,运行效果如下: 1 gcc ol.shell.c -o origin_shell 2 3 ./origin_shell 4 % date 5 2015年12月13日 星期日 22时04分48秒 CST 6 % ^Cinterrupt 7 ls 8 Makefile getcputc.c mycat.c myls_info.c note.md origin_shell shell2.c uidgid.c 9 a.out hello.c myls.