- 浏览: 439136 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
su6838354:
我有点疑问啊,thread1中的i自增的慢的话,thread2 ...
浅析pthread_cond_wait -
zeronever:
请问pthread_cond_signal有解锁操纵吗?我在p ...
浅析pthread_cond_wait -
paladin1988:
你这帖子真心不错。。
浅谈bitmap算法 -
parabellum_sky:
昨天还有个姑娘让我去考我说会考虑
个人日志
1.编译《UNP》
http://www.unpbook.com/unpv13e.tar.gz
我们首先产生一个目录,以后自己的代码就敲在这个目录里。
mkdir /home/hehe/study/unp
仍然是下载到/home/hehe/download/,解压缩,进入目录
cd /home/hehe/download/unpv13e/
README文件中说的很详细:
========================================
Execute the following from the src/ directory:
./configure # try to figure out all implementation differences
cd lib # build the basic library that all programs need
make # use "gmake" everywhere on BSD/OS systems
cd ../libfree # continue building the basic library
make
cd ../libroute # only if your system supports 4.4BSD style routing sockets
make # only if your system supports 4.4BSD style routing sockets
cd ../libxti # only if your system supports XTI
make # only if your system supports XTI
cd ../intro # build and test a basic client program
make daytimetcpcli
========================================
这里只编译lib下的文件,这样可以产生libunp.a,复制这个静态库到/usr/lib/和/usr/lib64/
如果提示:
unp.h:139: error: conflicting types for ‘socklen_t’
/usr/include/bits/socket.h:35: error: previous declaration of ‘socklen_t’ was here
需要注释掉当前目录中unp.h的第139行。
复制libunp.a到系统目录:
root@dan-laptop:/home/hehe/download/unpv13e/lib# cp ../libunp.a /usr/lib
root@dan-laptop:/home/hehe/download/unpv13e/lib# cp ../libunp.a /usr/lib64/
2.使用unp.h和libunp.a
如果直接复制unpv13e/lib/unp.h和config.h到/usr/include,那么在别的目录编译书上代码时,很可会得到类似下面的错误:
In file included from daytimetcpsrv1.c:1:
/usr/include/unp.h:227: error: redefinition of ‘struct sockaddr_storage’
In file included from daytimetcpsrv1.c:1:
/usr/include/unp.h:249:30: error: ../lib/addrinfo.h: No such file or directory
/usr/include/unp.h:263: error: redefinition of ‘struct timespec’
/usr/include/unp.h:363: error: conflicting types for ‘gai_strerror’
/usr/include/netdb.h:647: error: previous declaration of ‘gai_strerror’ was here
/usr/include/unp.h:367: error: conflicting types for ‘getnameinfo’
/usr/include/netdb.h:653: error: previous declaration of ‘getnameinfo’ was here
/usr/include/unp.h:371: error: conflicting types for ‘gethostname’
/usr/include/unistd.h:857: error: previous declaration of ‘gethostname’ was here
/usr/include/unp.h:387: error: conflicting types for ‘inet_ntop’
/usr/include/arpa/inet.h:65: error: previous declaration of ‘inet_ntop’ was here
/usr/include/unp.h:395: error: conflicting types for ‘pselect’
/usr/include/sys/select.h:121: error: previous declaration of ‘pselect’ was here
daytimetcpsrv1.c: In function ‘main’:
daytimetcpsrv1.c:9: error: ‘MAX_LINE’ undeclared (first use in this function)
daytimetcpsrv1.c:9: error: (Each undeclared identifier is reported only once
daytimetcpsrv1.c:9: error: for each function it appears in.)
dan@dan-laptop:~/study/unp/4$ rm -f /usr/include/unp.h
这是因为unp.h包含config.h使用的是#include "../config.h",而此时unp.h和config.h的位置关系发生了变化,只需改为#include "./config.h"即可
http://www.unpbook.com/unpv13e.tar.gz
我们首先产生一个目录,以后自己的代码就敲在这个目录里。
mkdir /home/hehe/study/unp
仍然是下载到/home/hehe/download/,解压缩,进入目录
cd /home/hehe/download/unpv13e/
README文件中说的很详细:
========================================
Execute the following from the src/ directory:
./configure # try to figure out all implementation differences
cd lib # build the basic library that all programs need
make # use "gmake" everywhere on BSD/OS systems
cd ../libfree # continue building the basic library
make
cd ../libroute # only if your system supports 4.4BSD style routing sockets
make # only if your system supports 4.4BSD style routing sockets
cd ../libxti # only if your system supports XTI
make # only if your system supports XTI
cd ../intro # build and test a basic client program
make daytimetcpcli
========================================
这里只编译lib下的文件,这样可以产生libunp.a,复制这个静态库到/usr/lib/和/usr/lib64/
如果提示:
unp.h:139: error: conflicting types for ‘socklen_t’
/usr/include/bits/socket.h:35: error: previous declaration of ‘socklen_t’ was here
需要注释掉当前目录中unp.h的第139行。
复制libunp.a到系统目录:
root@dan-laptop:/home/hehe/download/unpv13e/lib# cp ../libunp.a /usr/lib
root@dan-laptop:/home/hehe/download/unpv13e/lib# cp ../libunp.a /usr/lib64/
2.使用unp.h和libunp.a
如果直接复制unpv13e/lib/unp.h和config.h到/usr/include,那么在别的目录编译书上代码时,很可会得到类似下面的错误:
In file included from daytimetcpsrv1.c:1:
/usr/include/unp.h:227: error: redefinition of ‘struct sockaddr_storage’
In file included from daytimetcpsrv1.c:1:
/usr/include/unp.h:249:30: error: ../lib/addrinfo.h: No such file or directory
/usr/include/unp.h:263: error: redefinition of ‘struct timespec’
/usr/include/unp.h:363: error: conflicting types for ‘gai_strerror’
/usr/include/netdb.h:647: error: previous declaration of ‘gai_strerror’ was here
/usr/include/unp.h:367: error: conflicting types for ‘getnameinfo’
/usr/include/netdb.h:653: error: previous declaration of ‘getnameinfo’ was here
/usr/include/unp.h:371: error: conflicting types for ‘gethostname’
/usr/include/unistd.h:857: error: previous declaration of ‘gethostname’ was here
/usr/include/unp.h:387: error: conflicting types for ‘inet_ntop’
/usr/include/arpa/inet.h:65: error: previous declaration of ‘inet_ntop’ was here
/usr/include/unp.h:395: error: conflicting types for ‘pselect’
/usr/include/sys/select.h:121: error: previous declaration of ‘pselect’ was here
daytimetcpsrv1.c: In function ‘main’:
daytimetcpsrv1.c:9: error: ‘MAX_LINE’ undeclared (first use in this function)
daytimetcpsrv1.c:9: error: (Each undeclared identifier is reported only once
daytimetcpsrv1.c:9: error: for each function it appears in.)
dan@dan-laptop:~/study/unp/4$ rm -f /usr/include/unp.h
这是因为unp.h包含config.h使用的是#include "../config.h",而此时unp.h和config.h的位置关系发生了变化,只需改为#include "./config.h"即可
发表评论
-
关于Java中几种loadClass的讨论
2016-01-21 14:12 2342... -
gedit和vim打开中文显示乱码(转)
2011-09-03 16:36 1175gedit和vim打开中文显示乱码,下面是解决方法 打开vim ... -
字符界面默认不显示中文
2011-09-02 16:39 930字符界面默认不显示中文,全是菱形符号 首先安装zhcon: $ ... -
ubuntu 终端环境变换
2011-09-02 15:52 14351.Ubuntu终端命令行下的默认语言改为英语 修改Ubun ... -
APUE2源代码编译和单个源文件的编译(转载)
2011-09-01 19:37 1413因为对linux感兴趣,所以一直在学习与之相关的东西。最近下载 ... -
《UNIX环境高级编程》
2011-09-01 17:23 11011.直接进入源码目录的lib目录 cd lib 2.执行m ... -
小企鹅输入法
2011-09-01 16:28 760Fcitx──小企鹅输入法最大的特点是容易安装和使用,无论是拼 ... -
ubuntu 中文 TO英文
2011-09-01 15:41 755为了使用起来方便,装了ubuntu中文版,自然在home文 ... -
Red-hat 修改ls目录颜色
2011-08-31 21:46 1440文本界面下,红帽用蓝色作为ls的目录的颜色,配合他的黑色背景, ... -
linux下解压命令大全
2011-08-19 23:33 759linux下解压命令大全 .tar 解包:tar xvf F ... -
Linux GDB(七)
2011-08-01 11:50 883Linux GDB(七) 改变程序的执行 ——————— ... -
Linux GDB(六)
2011-08-01 11:49 612Linux GDB(六) 七、设置显示选项 GDB ... -
Linux GDB(五)
2011-08-01 11:48 992Linux GDB(五) 查看运行时数据 ——————— ... -
Linux GDB(四)
2011-08-01 11:46 1113Linux GDB(四) 查看栈信息 ————— 当程序被 ... -
Linux GDB(三)
2011-08-01 11:45 735Linux GDB(三) 四、维护停止点 上面说了如何设置 ... -
Linux GDB(二)
2011-08-01 11:42 865Linux GDB(二) 文章来源:http://blog. ... -
Linux GDB(一)
2011-08-01 11:40 1057Linux GDB(一) 文章来源:http://blog. ... -
Linux-vim设置
2011-06-11 16:29 1188在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显 ... -
Linux-Vi 命令
2011-06-11 14:19 787文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑 ... -
linux-压缩和解压缩
2011-03-30 10:30 845linux-压缩和解压缩 1.解压缩 tar -zxvf ...
相关推荐
源码通常按照章节组织,每个章节可能包含多个示例程序,这些程序展示了如何使用Unix系统调用和函数进行网络通信。 编译Unix源码通常涉及到以下几个步骤: 1. **预处理**:首先,预处理器cpp会处理源代码中的宏定义...
通过对《Unix网络编程》中提供的简单时间获取客户端与服务器程序的源代码分析,我们不仅学习了如何使用套接字进行网络通信的基本流程,还掌握了客户端-服务器模型的工作原理以及实现细节。此外,通过实际代码示例的...
unix网络编程源码,包括unpipc.h头文件
在Unix系统编程中,我们涉及的是操作系统级别的编程,这涵盖了进程管理、文件系统、网络通信、设备驱动等多个核心领域。Unix系统以其简洁、模块化的设计理念,为开发者提供了丰富的API和工具来实现复杂的任务。本源...
这本书深入讲解了在Unix系统上进行网络编程的各种技术和方法,对于理解TCP/IP协议栈、socket接口以及多线程并发处理等核心概念有着极大的帮助。源码是书中理论知识的实践体现,是加深理解和应用的关键。 源码包`...
UNIX网络编程卷一第三版配套源码,编译不过的话,可以在这里下载http://download.csdn.net/detail/weiyujie2014/9495023 编译好的库文件和头文件,只需复制即可,切记编译时要加-lunp选项
### Unix网络编程源代码使用详解 #### 一、前言 在进行Unix网络编程的学习过程中,正确地编译和运行源代码是非常关键的一步。本文将详细介绍如何在Ubuntu 11.10环境下编译并运行《Unix网络编程》一书中提供的示例...
书中每章都配有实例,有助于理论与实践相结合,加深对UNIX编程的理解。 `ourhdr.h`是一个头文件,它可能包含了一些通用的函数声明或常量定义,这些在书中的一些示例程序中可能会用到。学习者可以通过研究这个头文件...
解压后,可以逐个分析和运行每个程序,加深对Unix编程的理解。 《UNIX环境高级编程(中文第三版)_扫描版.pdf》和《unix环境高级编程英文版第2版.pdf》是书籍的不同版本,提供了中文和英文的阅读选择。中文版便于...
12. **网络编程**:Unix支持TCP/IP协议,可以使用socket API进行网络通信,如socket、bind、listen、accept、connect、send、recv等。 13. **权限和权限位**:Unix的文件系统具有精细的权限控制,通过chmod、chown...
这些编程任务通常涉及使用系统调用接口,如open、read、write、fork、execve、waitpid等,以及相关的头文件和库函数。 1. **文件操作**:Linux/Unix系统编程中,文件操作是基础。通过open函数打开文件,read和write...
通过研读《UNIX环境高级编程第二版》的源码,你不仅可以掌握UNIX编程的基本技能,还能深入了解操作系统的工作机制,这对于成为一名优秀的系统程序员或者软件架构师至关重要。在实践中,这种深度理解将使你能够编写出...
源代码是学习和理解书中理论的宝贵资源,对于想要深入了解Unix编程的读者来说非常有价值。 源码包中的"apue.2e"很可能包含了第三版(第二版扩展版)的全部源代码示例。这些示例覆盖了进程管理、文件系统操作、I/O流...
UNIX网络编程卷一第三版源码资源,在Ubuntu1004下可用。资源免编译,下载及用。方法:将两个头文件放入/usr/include文件夹下,将libunp.a放入/usr/lib和/lib文件夹下。编译的时候,加-lunp例如:gcc text.c -lunp。
这份"UNIX源代码分析+源码"资料集合,显然是为了帮助学习者深入理解UNIX内核的工作原理和编程实践。以下是基于提供的文件名(PDF文档)可能涵盖的一些关键知识点: 1. **文件系统**: UNIX系统以强大的文件系统...
unix环境高级编程第三版源码需要使用的apueerror.h头文件,
这本书的源码是作者为了配合书中的理论知识而精心编写的示例代码,旨在帮助读者更好地理解和实践Unix编程。 在Unix环境下,高级编程涉及的内容广泛,包括进程管理、文件I/O、网络通信、信号处理、多线程编程、内存...
8. **头文件和预处理器**:熟悉UNIX系统下的常用头文件,如`unistd.h`、`stdlib.h`、`string.h`等,并理解预处理器宏的使用。 9. **编译和链接**:掌握`gcc`编译器的使用,理解预处理、编译、汇编和链接的过程。 ...
此书的第二版源码提供了深入学习Unix系统编程的实践资源,帮助开发者更直观地理解书中的理论知识。下面将详细阐述这本书及源码中的关键知识点。 1. **文件I/O**:Unix系统中,一切皆为文件,包括设备、网络接口等。...