unix环境高级编程

             unix环境高级编程笔记

准备工作

1.      安装 unixLinux 这里安装的是linux(虚拟机安装)

虚拟机连接有三种方式:host only,桥接, nat,其中

a.      Hostonly:

vmnet1 ip :172.16.245.1 

vmware虚拟机网络设置:ip:172.16.245.100 gateway:172.16.245.1

b.      ridge:主机ip10.70.54.31 设置虚拟机ip10.70.54.22 ,netmash,broadcast,gateway,dns都与主机相同即可,实现虚拟机主机,互联网通信。

c.      hostoly一样。

2.      LINUX下安装apue

  http://www.apuebook.com/下载src.tar.gz源代码的压缩包,

 解压在/usr/目录中,

修改目录中的linux.mkWKDIR = 设置为你安装的目录

修改安装目录下的std/linux.mk 将所有的nawk 改为awk 可以使用这个命令:

%s/nawk/awk/g

  返回安装目录运行make

  安装目录下的apue.h 和安装目录下的lib/error.c复制到/usr/include目录下。

3.      每次有err_开头的函数都要包含apuerror.h并放入/usr/include文件下,内容为:

 

准备工作

 

1.      安装 unixLinux 这里安装的是linux(虚拟机安装)

 

虚拟机连接有三种方式:host only,桥接, nat,其中

 

a.      Hostonly:

 

vmnet1 ip :172.16.245.1 

 

vmware虚拟机网络设置:ip:172.16.245.100 gateway:172.16.245.1

 

b.      bridge:主机ip10.70.54.31 设置虚拟机ip10.70.54.22 ,netmash,broadcast,gateway,dns都与主机相同即可,实现虚拟机 主机 ,互联网通信。

 

c.      hostoly一样配置,只不过选项不一样

 

这三种方式的连接的意义不一样,bridge相当于一个物理机器,虚拟网卡相当于在主机和虚拟机前加了个交换机,他们访问时互通的,hostonly方式相当于一个虚拟的网络依附于主机,主机和这个虚拟网络可以互通,但是虚拟网络和主机的别的网络部能互通,NAT则是虚拟网络可以访问别的网络,但是别的网络部能访问虚拟网络。

 

2.      LINUX下安装apue

 

  http://www.apuebook.com/下载src.tar.gz源代码的压缩包,

 

 解压在/usr/目录中,

 

修改目录中的linux.mkWKDIR = 设置为你安装的目录

 

修改安装目录下的std/linux.mk 将所有的nawk 改为awk 可以使用这个命令:

 

%s/nawk/awk/g

 

  返回安装目录 运行make

 

  安装目录下的apue.h 和安装目录下的lib/error.c复制到/usr/include目录下。

 

3.      每次有err_开头的函数都要包含apuerror.h并放入/usr/include文件下,内容为:

 

#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, ...)

 

{

 

 

 

。。。

 

。。。

 

第一个例子

 

 

 

 unix环境高级编程

 

 

 

 

下面是运行程序,这样本书的运行例子的环境就搭建完成了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

unix环境高级编程

 

UNIX基础知识

 

Unix体系结构

控制计算机硬件资源,提供程序运行的环境,一般而言,我们称此种软件为内核,它相对较小,位于环境中心,

 

为系统调用,公共函数构建在系统调用接口之上,应用软件即可使用公用函数库,也可以使用系统调用,shell是一种特殊的应用程序,它为运行其他应用程序提供一个接口,

目录文件名

创建目录时会自动创建2哥文件名:...

路径名

绝对路径和相对路径  /xxx/ssss   sdfsdf/erwerw

 

起始目录

登陆时,工作目录设置为起始目录,该起始目录从口令文件中相应用户的登录项中取得。

输入和输出

1.      文件描述符通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件。当内核打开一个已有文件或创建一个新文件时,它返回一个文件描述符。在读写文件时,就可以使用它。

2.      标准输入、输出、和标准出错。可以使用 > <来重定向。

3.      不用缓冲的I/O

函数openreadwritelseek以及close提供了不用缓冲的I/O。这些函数都使用文件描述符。

 

 

 

 

 步子迈大了,那啥了。。。。。

 

你可能感兴趣的:(unix)