unix网络编程之环境配置

《UNIX网络编程》环境配置 将文件解压到/usr/include/目录下,并根据自己的代码需要,更改unp.h文件中的#include "unp/xxx.c"行,使相应的*.c文件包含在内,别的不做任何更改就可以运行《UNIX网络编程》书里的程序了…… 立即下载

   刚开始学习《Unix网络编程》,输入第一个程序后,遇到各种错误,先将解决方案记录如下。

遇到的第一个错误是:没有找到头文件“unp.h”,该头文件是作者自己写的,并不包含在/usr/include中,这时需要到网上下载unpv13e.tar.gz到某一目录。具体操作:

mkdir /home/yourname/download   %创建存放压缩文件的目录

tar -xzvf unpv13e.tar.gz                  %解压

ls -al                                                %查看该目录下的文件

cd   unpv13e                                   %进入unpv13e 

cat README                                   %查看README文件,其中有具体的安装信息,按照操作即可

QUICK AND DIRTY
===============

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
    ./daytimetcpcli 127.0.0.1

If all that works, you're all set to start compiling individual programs.

然后,复制unp.h和config.h到/usr/include
cp libunp.a /usr/lib
cp libunp.a /usr/lib64/
cd /lib
cp unp.h /usr/include
cp config.h /usr/include

最后,修改unp.h中的#include "../config.h"为#include "./config.h"。
以上是第一个错误,下面的错误是:
undefined reference to 'err_quit'
undefined reference to 'err_sys'
这也是由于,意思是未定义的声明,也就是说这些函数没有实现,这时候在网上找的自定义错误处理函数myerr.h
#include "apue.h"
#include <errno.h> /* for definition of errno */
#include <stdarg.h> /* ISO C variable aruments */
static void err_doit(int, int, const char *, va_list);
/*
* Nonfatal error related to a system call.
* Print a message and return.
*/
void
err_ret(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    err_doit(1, errno, fmt, ap);
    va_end(ap);
}
/*
* Fatal error related to a system call.
* Print a message and terminate.
*/
void
err_sys(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    err_doit(1, errno, fmt, ap);
    va_end(ap);
    exit(1);
}
/*
* Fatal error unrelated to a system call.
* Error code passed as explict parameter.
* Print a message and terminate.
*/
void
err_exit(int error, const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    err_doit(1, error, fmt, ap);
    va_end(ap);
    exit(1);
}
/*
* Fatal error related to a system call.
* Print a message, dump core, and terminate.
*/
void
err_dump(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    err_doit(1, errno, fmt, ap);
    va_end(ap);
    abort(); /* dump core and terminate */
    exit(1); /* shouldn't get here */
}
/*
* Nonfatal error unrelated to a system call.
* Print a message and return.
*/
void
err_msg(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    err_doit(0, 0, fmt, ap);
    va_end(ap);
}
/*
* Fatal error unrelated to a system call.
* Print a message and terminate.
*/
void
err_quit(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    err_doit(0, 0, fmt, ap);
    va_end(ap);
    exit(1);
}
/*
* Print a message and return to caller.
* Caller specifies "errnoflag".
*/
static void
err_doit(int errnoflag, int error, const char *fmt, va_list ap)
{
    char buf[MAXLINE];
   vsnprintf(buf, MAXLINE, fmt, ap);
   if (errnoflag)
       snprintf(buf+strlen(buf), MAXLINE-strlen(buf), ": %s",
         strerror(error));
   strcat(buf, " ");
   fflush(stdout); /* in case stdout and stderr are the same */
   fputs(buf, stderr);
   fflush(NULL); /* flushes all stdio output streams */
}

将以上代码创建到/usr/include/myerr.h即可。
最后,还缺少"apue.h"文件,到网上下载src.tar.gz到/home/yourname/download下,然后
cd /home/yourname/download
tar -xzvf src.tar.gz
然后找到apue.h文件拷到/usr/include/即可
Vue - 在纯 HTML 普通项目中实现组件化,让原生 html 项目支持引入 *.vue 组件 / 组件与组件间的互相引用等,完美解决了引入组件出现的跨域问题(保姆级详细教程,完整示例源码及插件) html中使用vue组件,在HTML页面中引入vue组件,HTML界面利用http-vue-loader.js以组件方式引入vue文件,使用http-vue-loader引入组件出现报错,在html页面使用http-vue-loader插件引入组件报跨域错误,如何解决http-vue-loader引用组件时出现跨域问题,纯html原生web项目引入vue后如何实现组件引入,使用http-vue-loader插件控制台报错跨域,http-vue-loader跨域怎么办官方文档,html页面如何引入.vu 阅读详情

相关推荐

LMX2594时钟配置实战:TICS PRO从入门到寄存器导出

本文详细介绍了LMX2594时钟芯片的配置实战,重点讲解了如何使用TICS PRO调试软件简化复杂的寄存器设置过程。通过实例演示从基础频率配置到高级参数调优的全流程,并分享SPI写入的嵌入式系统移植技巧,帮助工程师快速掌握高性能时钟芯片的配置方法。

weixin_29189003的博客 555

centos下Unix网络编程的源码的使用问题

centos下Unix网络编程的源码的使用问题

wangjunxumei的博客 448

TI电机驱动应用中MOSFET选型完整指南

深入解析TI电机驱动设计中MOSFET的选型关键,涵盖参数匹配、热性能与开关效率,帮助工程师优化系统性能并提升能效,是掌握MOSFET应用的核心参考。

weixin_42263617的博客 1271

UNIX 网络编程环境配置

在ubuntu中配置这本书的环境 第1步:点击下面的链接,下载压缩包。 下载unpv13e.tar.gz 第2步:通过终端,cd进入上面的压缩包所在文件夹 然后执行 tar zxf unpv13e.tar.gz 第3步:安装编译器 sudo apt-get install build-essential 第4步:进入unpv13e目录 ./configure cd lib

rock4you 1532

电池充电管理芯片规格书精读指南:从参数解析到设计实战

电池充电管理是嵌入式系统和便携式设备开发中的基础环节,其核心在于理解并应用充电芯片的规格参数。充电芯片通过精确控制电压、电流、温度等关键参数,实现对锂电池等可充电电池的安全、高效管理。掌握这些参数原理,对于优化产品功耗、提升充电效率、保障电池寿命具有重要技术价值,广泛应用于智能穿戴、消费电子、无人机等场景。本文聚焦于**充电电流**设定与**热管理**等核心参数,深入解析其相互影响与工程选型中的权衡,旨在帮助开发者将抽象的规格书数据转化为可靠的电路设计依据,从而有效排查充电故障,提升产品整体可靠性。

weixin_26874745的博客 668

微信内置浏览器抓包全攻略:从ADB配置到Chrome调试(附常见问题解决)

本文提供了一套完整的微信内置浏览器抓包与调试解决方案。从ADB工具的深度配置与稳定性连接开始,详细讲解了如何开启X5内核调试开关,并利用Chrome DevTools建立远程连接。文章重点剖析了Network面板进行网络请求抓取、性能分析和问题定位的实战技巧,并附带了设备连接失败、无网络请求等常见问题的排查指南,帮助开发者高效解决微信H5页面调试难题。

gitlab7runner的博客 546

《UNIX网络编程》一书中源代码在ubuntu下如何编译的问题

今天偶然下载了英文版的《UNIX网络编程》第三版第1卷:the sockets networking API和配套的源代码,因为以前只用java和C#编写过网络应用程序,而没接触过用C编写SOCKET程序,偶然的机会看到了这本书然后就下载了下来。最新版的好像是更新到了第三版,网上有英文版电子版的下载,而且有配套的源码。实话说,看英文原版的感觉真的不错,没多少陌生的单词,一点都不影响理解。

海边顽石的专栏 516

别再到处找资源了!WinCC 7.5 SP2官方下载与Windows 10保姆级安装避坑指南

本文提供了WinCC 7.5 SP2在Windows 10上的官方下载与安装全流程指南,重点解决了资源获取难、系统兼容性问题及分卷压缩处理等常见痛点。通过详细的步骤和实用技巧,帮助用户顺利完成安装并优化配置,适用于工控领域的学习者和从业者。

weixin_32924297的博客 493

《UNIX网络编程》卷I 实验环境搭建

最近在学习《UNIX网络编程》卷I ,可是里边全是#include "unp.h",别无其他头文件,当然我们可以自己写头文件,不过很麻烦。 我决定自己编译出#include "unp.h" ,方便以后直接调用、运行。先看看“unp.h”的庐山真面目!!! 本人用的是centOS6.5(已运行成功) 1、下载源码,得到源码包:unpv13e.tar.gz 2、解压:tar -zxvf u

qz18292003158的博客 536

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX + CMSIS-DSP 手动添加、库添加方式

CMSIS-DSP库在工程中应用遇到的所有问题进行归纳终结

洋洋的博客 1万+

2026年3月GESP真题及题解(C++七级): 选择题和判断题(题解)

2026年3月GESP真题及题解(C++七级): 选择题和判断题(题解)

王老师青少年编程 991

1.源代码的下载,编译和测试

一.源代码的下载和编译 源代码下载地址:点击这里 , 下载下来得到unpv13e.tar.gz文件 编译步骤:  解压缩zxvf unpv13e.tar.gz tar zxvf unpv13e.tar.gz 进入unpv13e文件夹中 cd /unpv13e ./configure//如果权限不够可以chmod改权限 编译lib文件 cd lib make cd .

zjy900507的博客 476

FISCO BCOS 系列(一)—— 搭建第一个区块链网络&配置控制台指南

本文详细介绍了FISCO BCOS区块链网络的搭建与配置过程,包括环境准备、单机四节点网络搭建、控制台配置使用等核心内容。从系统要求、依赖安装开始,逐步指导如何通过脚本快速搭建区块链网络,配置控制台连接,并演示了账户管理、合约部署调用等基础操作。同时提供了多节点网络配置、常见问题解决方案以及生产环境安全建议,为开发者提供了从入门到进阶的完整指南。

分享AI、区块链技术及应用,未来已来 812

《UNIX网络编程 卷1》一、环境配置

引言之前做的客户端开发主要重难点在于业务逻辑的抽象与实现,而服务端开发对技术的要求更高。遂开始学习《UNIX网络编程 卷1:套接字联网API(第3版)》,敦促自己坚持。本书源码可以在官网或者图灵社区免费获取环境:macOS 10.13.1环境配置./configurecd lib makecd ../libfree make此处报错:$ make gcc -I../lib -g -O2 -D_REE

milletluo的博客 1103

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

UNIX网络编程之环境配置

开始学习《Unix网络编程》,输入第一个程序后,遇到各种错误,先将解决方案记录如下。 遇到的第一个错误是:没有找到头文件“unp.h”,该头文件是作者自己写的,并不包含在/usr/include中,这时需要到网上下载unpv13e.tar.gz到某一目录。具体操作: mkdir /home/yourname/download   %创建存放压缩文件的目录 tar -xzvf

我有我的天空 542

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

UNIX网络编程_1-源码下载及环境配置

UNIX网络编程配置环境源码下载及环境配置第一个简单的时间获取程序 配置环境 本人使用的环境为centos 7.2,所使用的配套书籍为UNIX,网络编程第三版 链接:https://pan.baidu.com/s/1soJqtB7FtXJrMS0bujuusw 提取码:8nom 源码下载及环境配置 本书所使用的全部源码均可在www.unpbook.com下载,本人也做了百度云存档 链接:https...

qq_34672406的博客 1206

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

unix linux网络配置文件,UNIX网络编程之环境配置

开始学习《Unix网络编程》,输入第一个程序后,遇到各种错误,先将解决方案记录如下。遇到的第一个错误是:没有找到头文件“unp.h”,该头文件是作者自己写的,并不包含在/usr/include中,这时需要到网上下载unpv13e.tar.gz到某一目录。具体操作:mkdir /home/yourname/download %创建存放压缩文件的目录tar -xzvf unpv13e.tar.gz...

weixin_36218863的博客 286

unix高级环境编程和网络编程环境配置

unix环境高级编程的环境: 需要有apue.h的头文件,具体步骤如下: (1)下载源代码,可以去官网下载:http://apuebook.com/code3e.html (2)解压缩源代码文件:tar -zxvf src.3e.tar.gz (3)安装libbsd-devel,否则编译会报错不通过,会提示编译threads文件夹里面的内容时报错,报错信息就不贴出来啦:yu

danpi1hao的博客 753

《unix网络编程》中源码如何使用,环境配置

tar zxvf unpv13e.tar.gz ./configure cd lib make cd ../libfree make cd ../libgai make cd .. // 回到主目录 // 修改unp.h gedit lib/unp.h // 修改 #include "../config.h" 为 #include "config.h" ...

weixin_34279579的博客 95

unix网络编程 环境搭建 环境配置

转自:http://blog.csdn.net/zone_programming/article/details/51050726 遇到跟这篇博客一模一样的问题,但是搜索时并没有出现在首页,于是转载并重新起了个题目。 学习unp网络编程,树上的例子均存在#include "unp.h",故需要对环境进行配置。 1. 到资源页下载unpv13e  2. 解压并将unpv13e

lipeng19930407的博客 978

unix网络编程第三版环境配置

根据unp3前沿部分的“如何使用本书”,决定先看本书的第二部分,即第3至11章,这部分偏实践。        当看到确定主机字节序的时候出现了一段程序:#include "unp.h"int main(int argc, char **argv) { union { short s; char c[sizeof(short)]; } un;

Trevor211的专栏 2009

UNIX网络编程:unpv13e源代码包的环境配置及intro的执行范例

狠心买下正版《UNIX网络编程》后,喵哥开始了网络编程的道路。在书中介绍的第一个例子:输出服务器端的时间信息。 官方提供的源代码都是基于自己的头文件写的,所以要使用这些源代码需要使用他们的头文件,这个不是自己靠复制一两个头文件到目的文件夹那么简单,幸好,官方提供了README,按照README基本上不会有啥问题,除了接下来要解决的几个。 终端进入unpv13e目录下,执行前面的命令比较顺利: ...

喵哥的博客 1033

Unix网络编程-Mac OS环境配置

虽然网上的材料已经足够丰富了,不过似乎还是或多或少出现问题,趁着自己记忆尤新,就先记下来了~! 首先如果你想跑第一个程序,你会很遗憾的发现并不能,因为缺乏作者写的头文件"dnp.h" 首先我们要下载源文件 https://download.csdn.net/download/ts173383201/4505201 解压之后,cd 进入,并按照下面的步骤进行 ./configure cd li...

404lz保留地 352

unix网络编程环境配置程序运行

1 查看ubuntu版本 cat /etc/issue   2 查看版本 cat /proc/version    3 下载 你可以通过其他方式下载 这里下载好了 文件名为unpv13e 4 开始配置   (1)cd unpv13e   (2)chmode 775 configure//修改权限   ./configure//检查依赖   (3)c...

weixin_30905133的博客 141

Unix网络编程卷1 第一章读书笔记以及习题

1 下载源码并且配置环境 对于想学习网络编程的同学来说,《UNIX网络编程》这书肯定是不二选择。所谓实践是检验真理的唯一标志,特别是对于编程来讲,再多的理论经验也比不过code一次。《UNIX网络编程》这本书提供连源码下载,第三版本的源码我是在 GitHub上面下载的。 但是源码归源码,下载了如果不会使用那也是瞎扯。下面简单介绍一下在本节主要介绍UNIX网络编程卷(第三版)在Ubuntu1...

ProgramVAE的博客 965

《UNIX网络编程》01

《UNIX网络编程》01 《UNIX网络编程》环境搭建,实现第一个程序。 新的开始 《UNIX》网络编程要运行这里的程序需要搭建开发环境。 1.系统选择:centos7 虚拟机 2.下载源码:www.unpbook.com。 按照图片顺序下载: 下载zip文件,不用担心解压问题 选择保存文件,保存的文件在“主目录——下载”文件夹里。 3.提取源码:选中文件 “双击或者回车”,然后点击“提取”。 会让你选择提取路径,我选择了“主目录”,然后在点击“提取”,就可以在主目录下看到提取出来的全

qq_27699113的博客 594
下一篇: Vm-tools的安装
traceorigin
博客等级 码龄15年 38粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值