UNIX环境高级编程--#include "apue.h"
apue.h头文件为作者自己编写而非系统自带,故需要自行添加!
第一:打开网站 http://www.apuebook.com/
第二:选择合适的版本(一共有三个版本,根据书的版本选择)下载源码source code

解压: tar -zxvf src.2e.tar.gz
得到apue.2e
复制apue.h 到 /usr/include/下: cp ./apue.2e/include/apue.h /usr/include/
复制error.c 到 /usr/include/下: cp ./apue.2e/lib/error.c /usr/include/
第三:编辑/usr/include/apue.h文件
在文件最后#endif前加上包含error.c代码: #include "error.c"
第四:测试一下
#include "apue.h"
#include <dirent.h> int main(int argc, char *argv[])
{
DIR *dp;
struct dirent *dirp; if (argc != 2)
err_quit("usage: ls directory_name"); if ((dp = opendir(argv[1])) == NULL)
err_sys("car`t open %s", argv[1]); while ((dirp = readdir(dp)) != NULL)
printf ("%s\n", dirp->d_name ); closedir(dp); exit(0);
}//end main
保存为cpp文件,然后运行这个文件。
g++ -Wall -o ls_apue ls_apue.cpp
经过上面的简单配置,UNIX环境高级编程中的例子程序都可以跑起来了。
UNIX环境高级编程--#include "apue.h"的更多相关文章
- 《UNIX环境高级编程》(APUE) 笔记系列
本系列笔记主要是对于 <UNIX环境高级编程>(APUE) 各章节内容 概念性的总结 ,不涉及代码解读 . 目录 : 第一章 UNIX基础知识 第二章 UNIX标准及实现 第三章 文件I/ ...
- 解决《UNIX环境高级编程》(APUE)示例代码的编译问题
转自 http://cunsheng.sinaapp.com/?p=360 APUE中示例很多, 把这些源码拿来跑跑调调对学习理解有着莫大的帮助, 随书网站就提供了源码下载, 不过我自己在Linux和 ...
- 《UNIX环境高级编程》(APUE) 笔记第十一章 - 线程
11 - 线程 Github 地址 1. 线程概念 典型的 UNIX进程 可以看成只有一个 控制线程 :一个进程在某一时刻只能做一件事情.有了 多个控制线程 ,就可以把进程设计成在某一时刻能够做不止一 ...
- 《UNIX环境高级编程》(APUE) 笔记第十章 - 信号
10 - 信号 GitHub 地址 1. 信号 信号是 软中断 ,信号提供了一种处理异步事件的方法. 当造成信号的事件发生时,为进程 产生 一个信号(或向进程 发送 一个信号).事件 可以是硬件异常( ...
- 《UNIX环境高级编程》(APUE) 笔记第八章 - 进程控制
8 - 进程控制 Github 地址 1. 进程标识 每个进程都有一个非负整型表示的 唯一进程 ID .进程 ID 是可复用的(延迟复用算法). ID 为 \(0\) 的进程通常是调度进程,常常被称为 ...
- 《UNIX环境高级编程》(APUE) 笔记第九章 - 进程关系
9 - 进程关系 GitHub 地址 1. 进程组 每个进程除了有一个 进程 ID 外,还属于一个 进程组 .进程组是一个或多个进程的 集合 ,通常,它们是在同一作业中结合起来的,同一进程组中的各进程 ...
- 《UNIX环境高级编程》(APUE) 笔记第七章 - 进程环境
7 - 进程环境 Github 地址 1. main 函数 C 程序总是从 main 函数 开始执行: int main(int argc, char *argv[]); \(argc\) 为命令行参 ...
- 《UNIX环境高级编程》(APUE) 笔记第三章 - 文件I/O
3 - 文件I/O Github 地址 1. 文件描述符 对于内核而言,所有打开的文件都通过 文件描述符 (file descriptor) 引用.当打开一个现有文件或创建一个新文件时,内核向进程返回 ...
- 《UNIX环境高级编程》(APUE) 笔记第十二章 - 线程控制
12 - 线程控制 GitHub 地址 1. 线程限制 下图为与 线程操作 有关的一些 限制: 可以通过 sysconf 函数进行查询 . 2. 线程属性 可使用 pthread_attr_t 结构修 ...
随机推荐
- union以及一些扩展
select name,age from Students where Age<3unionselect name ,age from Students where Age >4--两个结 ...
- 【转】获取CID 和 LAC的方法
原文地址:http://stackoverflow.com/questions/13399659/get-cellid-mcc-mnc-lac-and-network-in-ios-5-1 在iOS5 ...
- NSDictionary初始化,使用@{}方法,插入nil时会报空指针异常
由于今天在NSDictionary初始化的时候出现Crash异常,故记录一下,避免下次再犯. 在Objective-C中,NSDictionary初始化的方法有很多种 方法1: [NSDictiona ...
- (转)C#创建datatable
Asp.net DataTable添加列和行的方法 方法一: DataTable tblDatas = new DataTable("Datas"); DataColumn dc ...
- WindowsForm 流
流 包括输入流代码 输出流代码 流: 输入流: string filename = openFileDialog1.FileName; //通过读入流进行文件读取 StreamReader sr = ...
- gridview获取当前行索引的方法
在用GridView控件时,我们经常会碰到获取当前行的索引,通过索引进行许多操作.例如,可以获得当前行某一个控件元素:设置某一元素的值等等. 下面结合实例介绍几种获得GridView当前行索引值的方法 ...
- Java web 实现 之 Filter分析ip统计网站的访问次数
统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的. 用什么东西来装载统计的数据.Map<String,Integer& ...
- PHP截取汉字乱码问题解决方法mb_substr函数的应用
首先 1.确保你的Windows/system32下有php_mbstring.dll这个文件,没有就从你Php安装目录extensions里拷入Windows/system32里面. 2.在wind ...
- SurfaceView的补充
1.什么时候使用:当自定义View需要频繁刷新,或者刷新数据比较大的时候,建议使用SurfaceView取代使用View 2.继承SurfaceView的并重写的步骤:①.继承SurfaceView类 ...
- 利用Azure Automation实现云端自动化运维(2)
Azure automation的认证: 用户名和密码 在Azure的automation中使用Powershell可以管理当前订阅的资源,也可以管理不同订阅的资源,那么问题就来了,安全性如何 ...