unix linux网络配置文件,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 /* for definition of errno */

#include /* 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/即可0b1331709591d260c1c78e86d0c51c18.png

目 录 译者序 前言 第一部分 电子邮件 第1章 电子邮件概述 1 1.1 用户网络地址 1 1.1.1 Internet域寻址方式 2 1.1.2 UUCP路径寻址方式 3 1.2 发送和接收邮件 3 1.3 收到邮件的通知 4 1.4 自动接收邮件 5 1.5 二进制邮件和档案文件 5 1.5.1 编码二进制 6 1.5.2 MIME 7 1.6 在线通信:write和talk 7 1.6.1 直接连接: write 8 1.6.2 交互通信:talk 9 第2章 电子邮件程序mailx 10 2.1 发送信件 10 2.1.1 标准输入及重定向 10 2.1.2 给多个用户发送同一封信件 11 2.1.3 拷贝信件内容到一个文件里 12 2.1.4 采用tilde命令编辑信件 12 2.2 接收信件 15 2.2.1 信件列表符及当前信件标记 符 16 2.2.2 显示信件 17 2.2.3 信件的删除及恢复删除 18 2.2.4 回复信件和发送新信件 19 2.2.5 退出邮件shell 20 2.2.6 在邮箱文件里保存和访问 信件 21 2.2.7 在文件里保存信件内容 23 2.3 mailx别名、选项及邮件初始化文 件 24 2.3.1 mailx别名 24 2.3.2 mailx选项 24 2.3.3 管理邮箱文件 26 第3章 电子邮件程序Elm 28 3.1 使用Elm发送信件 28 3.2 使用Elm接收信件 30 3.3 退出Elm程序 32 3.4 删除信件与恢复删除信件 32 3.5 回复信件 33 3.6 发送新信件 33 3.7 保存信件 33 3.8 读取邮箱文件 34 3.9 Elm别名 35 3.9.1 别名菜单 35 3.9.2 .elm和aliases.text 36 3.10 Elm选项 36 3.11 Elm命令小结 37 第4章 电子邮件程序MH 39 4.1 使用MH发送信件 39 4.2 使用MH接收信件 40 4.3 使用MH显示信件 41 4.4 指定MH信件 41 4.5 打印、保存和回复信件 42 4.6 删除信件 43 4.7 选择信件 43 4.8 使用信件夹 45 4.9 在邮件脚本里使用MH 46 4.10 MH命令小结 46 第5章 Pine 48 5.1 撰写和发送信件 49 5.1.1 填写信件头 50 5.1.2 编辑信件正文 51 5.1.3 Pine地址簿 52 5.2 接收信件 53 5.3 选择信件夹 56 5.3.1 信夹集合 57 5.3.2 新闻组 58 5.4 Pine附件 59 5.5 Pine配置 61 5.6 Pico和Pilot 65 第二部分 新闻阅读器 第6章 Usenet及新闻阅读器:rn 和 readnews 67 6.1 发布文章:Pnews 68 6.2 .signature文件 70 6.3 新闻阅读器rn 70 6.3.1 新闻组列表 70 6.3.2 文章列表 72 6.3.3 显示文章 74 6.3.4 保存文章 74 6.3.5 标记文章 76 6.3.6 文章选择 76 6.3.7 答复文章:跟随文章和信件 77 6.3.8 rn选项 79 6.4 新闻阅读器readnews 81 6.5 小结 83 第7章 新闻阅读器trn 84 7.1 trn的新闻组界面 84 7.2 trn选择器 86 7.3 选择器显示模式:文章、主题和 线索 89 7.4 查找文章 91 7.5 显示文章 92 7.6 标记文章 94 7.7 回复文章 95 7.8 保存文章 95 7.9 trn线索树 96 7.10 trn选项 99 7.11 查补代码 100 7.12 trn环境变量 102 7.13 trn宏 103 7.14 小结 104 第8章 tin和nn 新闻阅读器 105 8.1 tin新闻阅读器 105 8.2 tin 新闻组选择屏幕 105 8.3 新闻组索引屏幕 108 8.4 tin线索列表 111 8.5 tin文章阅读器 112 8.6 tin文章过滤 114 8.7 tin命令行编辑和历史 116 8.8 tin配置 116 8.8.1 tin文件 117 8.8.2 tin 选项 117 8.8.3 tin配置变量:tinrc 118 8.8.4 环境变量 122 8.8.5 新闻组属性 123 8.9 nn新闻阅读器 125 第三部分 网络及Internet工具 第9章 TCP/IP网络互联技术 129 9.1 TCP/IP协议 129 9.2 域名 130 9.3 Internet和Intranet 131 9.4 TCP/IP地址 132 9.5 TCP/IP网络地址 133 9.6 TCP/IP 配置文件 134 9.6.1 标识主机名文件:/etc/hosts 134 9.6.2 网络名文件:/etc/networks 135 9.6.3 主机名文件:/etc/hostname 135 9.6.4 域名服务(DNS)文件: /etc/ host.conf和/etc/resolv.conf 136 第10章 Telnet 137 10.1 Telnet连接 137 10.2 公共服务 138 10.3 Telnet命令 139 10.4 Telnet配置 142 10.5 Telnet的.telnetrc文件 143 第11章 FTP 144 11.1 FTP连接 144 11.2 FTP目录和文件命令 145 11.3 文件传输 148 11.4 代理FTP 152 11.5 匿名FTP 152 11.6 自动登录 155 11.7 FTP宏 156 11.8 文件名的映射和转换 157 11.9 FTP传输参数 158 11.10 tar档案文件 159 11.11 压缩文件 160 11.11.1 compress、uncompress和 zcat 160 11.11.2 gzip、gunzip和gzcat 161 11.11.3 zip和unzip 161 第12章 Archie和WAIS 164 12.1 Archie 164 12.1.1 Archie客户软件 164 12.1.2 Archie服务器 166 12.2 WAIS 170 12.2.1 freeWAIS 171 12.2.2 WAIS服务器 171 第13章 Gopher 176 13.1 Gopher菜单 176 13.2 Gopher书签 178 13.3 Veronica 180 13.4 Gopher配置文件 181 13.5 Gopher服务器 183 13.5.1 Gopher目录 184 13.5.2 Gopher索引 186 13.5.3 一个Gopher站点的例子 186 第14章 World Wide Web 189 14.1 URL地址 189 14.2 Web页面 192 14.3 Web浏览器 193 14.3.1 Netscape Communicator 193 14.3.2 Mosaic 195 14.3.3 Lynx 195 14.4 Java 197 14.5 超文本标记语言HTML 197 14.5.1 标题和列表 200 14.5.2 访问Internet资源 202 14.5.3 Web页面示例 203 14.5.4 图像和声音 205 14.5.5 表单和公共网关接口 207 第四部分 远程访问 第15章 TCP/IP远程访问操作 211 15.1 网络信息检测命令:rwho、 ruptime和ping 212 15.2 远程访问权限文件:.rhosts 212 15.3 远程登录命令:rlogin 213 15.4 远程文件拷贝命令:rcp 213 15.5 远程执行命令:rsh 214 第16章 UUCP 216 16.1 UUCP的寻址方式 216 16.2 显示连接系统命令:uuname 218 16.3 UUCP连接管理命令:uucico 和uuxqt 218 16.4 UUCP命令 219 16.5 文件传输命令:uuto和uupick 219 16.6 文件拷贝命令:uucp和uustat 221 16.7 远程执行命令:uux 222 16.8 远程登录命令:cu和ct 223 Unix术语 226
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值