`
weihe6666
  • 浏览: 440112 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

UNIX网络编程源码和头文件的使用

 
阅读更多
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"即可
分享到:
评论

相关推荐

    Unix网络编程v2源码及编译方法

    源码通常按照章节组织,每个章节可能包含多个示例程序,这些程序展示了如何使用Unix系统调用和函数进行网络通信。 编译Unix源码通常涉及到以下几个步骤: 1. **预处理**:首先,预处理器cpp会处理源代码中的宏定义...

    《unix网络编程》源代码

    通过对《Unix网络编程》中提供的简单时间获取客户端与服务器程序的源代码分析,我们不仅学习了如何使用套接字进行网络通信的基本流程,还掌握了客户端-服务器模型的工作原理以及实现细节。此外,通过实际代码示例的...

    unix网络编程源码

    unix网络编程源码,包括unpipc.h头文件

    unix系统编程源代码

    在Unix系统编程中,我们涉及的是操作系统级别的编程,这涵盖了进程管理、文件系统、网络通信、设备驱动等多个核心领域。Unix系统以其简洁、模块化的设计理念,为开发者提供了丰富的API和工具来实现复杂的任务。本源...

    unix网络编程 第三版源码

    这本书深入讲解了在Unix系统上进行网络编程的各种技术和方法,对于理解TCP/IP协议栈、socket接口以及多线程并发处理等核心概念有着极大的帮助。源码是书中理论知识的实践体现,是加深理解和应用的关键。 源码包`...

    UNIX网络编程卷一第三版源码下载

    UNIX网络编程卷一第三版配套源码,编译不过的话,可以在这里下载http://download.csdn.net/detail/weiyujie2014/9495023 编译好的库文件和头文件,只需复制即可,切记编译时要加-lunp选项

    Unix网络编程源代码使用

    ### Unix网络编程源代码使用详解 #### 一、前言 在进行Unix网络编程的学习过程中,正确地编译和运行源代码是非常关键的一步。本文将详细介绍如何在Ubuntu 11.10环境下编译并运行《Unix网络编程》一书中提供的示例...

    UNIX环境高级编程第三版中英文两版+头文件+习题+源码.rar

    书中每章都配有实例,有助于理论与实践相结合,加深对UNIX编程的理解。 `ourhdr.h`是一个头文件,它可能包含了一些通用的函数声明或常量定义,这些在书中的一些示例程序中可能会用到。学习者可以通过研究这个头文件...

    Unix环境高级编程中英文版包括源代码

    解压后,可以逐个分析和运行每个程序,加深对Unix编程的理解。 《UNIX环境高级编程(中文第三版)_扫描版.pdf》和《unix环境高级编程英文版第2版.pdf》是书籍的不同版本,提供了中文和英文的阅读选择。中文版便于...

    unix下C编程源码

    12. **网络编程**:Unix支持TCP/IP协议,可以使用socket API进行网络通信,如socket、bind、listen、accept、connect、send、recv等。 13. **权限和权限位**:Unix的文件系统具有精细的权限控制,通过chmod、chown...

    《linux/unix系统编程手册》官方参考源码

    这些编程任务通常涉及使用系统调用接口,如open、read、write、fork、execve、waitpid等,以及相关的头文件和库函数。 1. **文件操作**:Linux/Unix系统编程中,文件操作是基础。通过open函数打开文件,read和write...

    UNIX环境高级编程2源码

    通过研读《UNIX环境高级编程第二版》的源码,你不仅可以掌握UNIX编程的基本技能,还能深入了解操作系统的工作机制,这对于成为一名优秀的系统程序员或者软件架构师至关重要。在实践中,这种深度理解将使你能够编写出...

    unix环境高级编程源码

    源代码是学习和理解书中理论的宝贵资源,对于想要深入了解Unix编程的读者来说非常有价值。 源码包中的"apue.2e"很可能包含了第三版(第二版扩展版)的全部源代码示例。这些示例覆盖了进程管理、文件系统操作、I/O流...

    UNIX网络编程卷一第三版源码unpv13e在Ubuntu1004上编译

    UNIX网络编程卷一第三版源码资源,在Ubuntu1004下可用。资源免编译,下载及用。方法:将两个头文件放入/usr/include文件夹下,将libunp.a放入/usr/lib和/lib文件夹下。编译的时候,加-lunp例如:gcc text.c -lunp。

    UNIX源代码分析+源码

    这份"UNIX源代码分析+源码"资料集合,显然是为了帮助学习者深入理解UNIX内核的工作原理和编程实践。以下是基于提供的文件名(PDF文档)可能涵盖的一些关键知识点: 1. **文件系统**: UNIX系统以强大的文件系统...

    unix高级编程第三版apueerror.h

    unix环境高级编程第三版源码需要使用的apueerror.h头文件,

    Unix环境高级编程(第三版)源码

    这本书的源码是作者为了配合书中的理论知识而精心编写的示例代码,旨在帮助读者更好地理解和实践Unix编程。 在Unix环境下,高级编程涉及的内容广泛,包括进程管理、文件I/O、网络通信、信号处理、多线程编程、内存...

    精通UNIX下C语言编程与项目实践源码与笔记

    8. **头文件和预处理器**:熟悉UNIX系统下的常用头文件,如`unistd.h`、`stdlib.h`、`string.h`等,并理解预处理器宏的使用。 9. **编译和链接**:掌握`gcc`编译器的使用,理解预处理、编译、汇编和链接的过程。 ...

    Unix环境高级编程第二版源码

    此书的第二版源码提供了深入学习Unix系统编程的实践资源,帮助开发者更直观地理解书中的理论知识。下面将详细阐述这本书及源码中的关键知识点。 1. **文件I/O**:Unix系统中,一切皆为文件,包括设备、网络接口等。...

Global site tag (gtag.js) - Google Analytics