一
VMware
桥接网络配置
我的VMware
版本是6.0.2
,host
是windowsXP,Guest
是Redhat9,
桥接网络设置是几种网络方式中最简单的一种。
host
网络是公司的局域网,自动获得IP
地址,具体设置如下:
1.
安装好 VMware
后在网络连接中可以看到三个网卡:
如果使用桥接模式的话,后两个虚拟网卡禁用还是启用对联网没什么影响,我把它们都禁用了
1.
设置本地连接为自动获得IP
地址,并勾选”VMware
Bridge Protocol”
命令ipconfig
查看一下host
的IP:
3.
虚拟机
--
》设置
--
》选择
Ethernet,
网络连接方式选择
“
桥接
”
,如下图:
4
启动虚拟机,进入
RedHat9
,
打开网络配置:
点击“确定”后,查看一下有没有分配到
IP
地址:
看到虚拟机已经分配到
IP
:
10.25.73.117
,重启后进入,虚拟机就可以上网了。
好了,桥接网络就这么简单。
由于最近在学习《
UNIX
环境高级编程(第
2
版)》,想在
RedHat9
下做一下里面的实验,于是就在上面的虚拟机
RedHat9
下编译
apue.2e
工程源代码,具体步骤如下文。
二
RedHat9
下
APUE
源代码编译
1
.
APUE2
源代码下载:
http://www.apuebook.com/src.tar.gz
2.
我保存到了
/home/workspace
下
.
解压缩
:tar -xzvf src.tar.gz
3. cd apue.2e
进入
apue.2e
目录
,
查看
README,
告诉我们
linux
系统只要修改
Make.defines.linux
再
make
4. vi Make.defines.linux
修改
WKDIR=/home/workspace/apue.2e
就是说工作目录为
WKDIR=/home/workspace/apue.2e
5.
修改
/home/workspace/apue.2e/std/linux.mk
把全部的
nawk
改为
awk.
因为
linux
默认没有
nawk
6. make
7.
编译后把生成的
/home/workspace/apue.2e/include/apue.h
拷贝到
/usr/include
下,
之后就可以按照书中的例子来做了。
三
错误处理
如果你编译程序过程中出现如下错误:
/tmp/cc6cU7YY.o(.text+0x1f): In function `main':
: undefined reference to `err_quit'
/tmp/cc6cU7YY.o(.text+0x53): In function `main':
: undefined reference to `err_sys'
collect2: ld returned 1 exit status
解决办法:
err_quit跟err_sys是作者自己定义的错误处理函数,需要单独定义头文件
在/usr/include 下新建一个名为myerr.h的文件
拷贝下边的内容到myerr.h(其实此头文件在原书的附录B中)
#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 */
}
然后编辑同一目录下的apue
.h
文件(这个文件是通过前一个步骤添加的)。在最后一行#endif /* _APUE_H */前面添加一个声明:
#include "myerr
.h
"
然后转至源代码所在目录,编译:
gcc -o myls myls.c
这次获得成功,运行:
./myls /usr
出现如下结果
:
src
..
.
lib
share
sbin
include
local
X11R6
bin
games
成功列出所有文件夹,success!
希望对和我一样的初学者有一定的帮助。
- 大小: 20.6 KB
- 大小: 29.3 KB
- 大小: 26.4 KB
- 大小: 14 KB
- 大小: 20.9 KB
- 大小: 22.7 KB
- 大小: 22.2 KB
- 大小: 22.6 KB
- 大小: 19.6 KB
- 大小: 20.9 KB
分享到:
相关推荐
(解决方法)VMware6.5 Redhat9 上网配置.pdf
VMware+RedHat 网络配置VMware+RedHat 网络配置VMware+RedHat 网络配置VMware+RedHat 网络配置VMware+RedHat 网络配置
Oracle 9i Redhat 9安装过程.docx
安装VMware9.0软件并载入Redhat9.0镜像.pdf
guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档
redhat7.9 + yum.repos.d +CentOS7-Base-163.repo + Centos-7-aliyun.repo
本文描述了在vmware虚拟机中用iso文件安装redhat9的步骤。图文并茂,希望对后来者有所帮助。
此版本为hedhat7.X以上版本,解压文件夹,里面包含了GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz,华为高斯数据库认证HCIA-GaussDB_V1.0实验手册.pdf,华为GaussDB 客户端工具—Data Studio 安装教程,照着文档...
guassdb100在redhat上安装包,单机部署的包,安装步骤请看自行上网查找。GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.7z
安装VMware9.0软件并载入Redhat9.0镜像.docx
已安装好redhat的vmware虚拟机,囊获redhat各个版本,从rhel60到rhel76 包括17个文件: rhel60.zip、rhel61.zip、rhel62.zip、rhel63.zip、rhel64.zip、rhel65.zip、rhel66.zip、rhel67.zip、rhel68.zip、rhel69....
CentOS和RedHat Linux的区别.docx
Redhat.Enterprise.Linux.v6.iso镜像,可部署虚拟机一起
实验指导书1_vmware与redhat linux 7.3安装.docx
redhat7配置yum.zip