`
kenby
  • 浏览: 724635 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apue2的ruptime和ruptimed程序例子

阅读更多

这个例子是一个c/s程序,有4个文件:ruptime.c clconn.c ruptimed.c initsrv1.c,其中ruptime.c和clconn.c构成client, ruptimed.c initsrv1.c构成server, client向server发送请求,server接到请求后运行uptime命令,并把结果返回给client。编译运行方式如下:

1. 编辑/etc/services文件,追加

ruptime 4000/tcp #apue2的例子程序

重启系统,这样系统新增加一个服务ruptime,为其分配的端口号是4000,然后我们在ruptime.c的函数调用

getaddrinfo (argv[1], "ruptime", &hint, &ailist)

才能成功,并返回主机和服务对应的地址信息,同理在ruptimed.c的函数调用

getaddrinfo (host, "ruptime", &hint, &ailist)

也可以正确工作。

getaddrinfo函数的原型为:

int getaddrinfo(
const char* host
const char* service
const struct addrinfo* hints,
struct addrinfo** res
);

其作用是将一个主机名字和服务名字映射到一个地址,也就是说,给定主机名host和服务名service,函数返回

这个主机和服务的一切网络信息(address information),这些信息存放到res参数中,res是一个struct addrinfo

原型为:

struct addrinfo {

int ai_flags;

int ai_family;

int ai_socktype;

int ai_protocol

socklen_t ai_addrlen;

struct sockaddr *ai_addr;

char *ai_canonname;

struct addrinfo *ai_next;

}

2. 编译运行

apue2> gcc -o ruptime ruptime.c clconn.c libapue.a
apue2> gcc -o ruptimed ruptimed.c initsrv1.c libapue.a
apue2> ./ruptimed
apue2> ./ruptime localhost
09:15:53 up 28 min, 2 users, load average: 0.10, 0.22, 0.18
apue2>



分享到:
评论

相关推荐

    APUE3+代码+APUE2(中文)

    APUE3则是在APUE2的基础上进行了更新和扩展,针对现代UNIX系统(包括Linux)的变化,增加了新的章节和内容,如对POSIX标准的详细讨论,以及更多关于多进程和多线程编程的实践案例。APUE3还涵盖了进程间通信(IPC)、...

    apue.2e(apue源代码)

    APUE.2E是该书的第二版,提供了丰富的源代码实例,对于学习和理解UNIX系统编程的开发者来说,是一份极其宝贵的学习资料。 一、UNIX系统编程基础 UNIX系统编程涉及的核心概念包括进程管理、文件I/O、信号处理、网络...

    APUE例子源码

    APUE例子源码是这本书的重要补充,它包含了书中所有示例程序的源代码,帮助读者更好地理解和实践书中的概念。 在使用这些源代码之前,我们需要在Linux环境下进行一些准备工作。首先,你需要下载并解压这个名为...

    apue.2e.zip

    apue.2e.zip是一个包含该书源代码和相关示例的压缩包,是学习和实践UNIX系统编程的重要资源。 在APUE中,你可以学到的知识点包括但不限于: 1. **进程管理**:涵盖进程创建(fork、vfork、exec家族)、进程控制...

    apue UNIX环境高级编程 程序包

    《APUE UNIX环境高级编程》程序包是一份包含详尽UNIX系统编程实例的资源集合,旨在帮助开发者深入理解和掌握高级UNIX编程技术。该程序包的独特之处在于,所有的实例代码都已被编译并通过验证,生成了可以直接运行的...

    apue2

    第二版(APUE2)在此基础上进行了更新和完善,旨在帮助程序员深入理解UNIX操作系统,并有效地进行系统级编程。 在UNIX编程领域,APUE2涵盖了广泛的知识点,包括但不限于: 1. **进程管理**:介绍了进程的创建、...

    apue.2e源代码

    《APUE.2e》是...通过深入研究《APUE.2e》的源代码,不仅可以掌握UNIX环境下的编程技术,还能培养良好的编程习惯和问题解决能力,这对于任何想要在UNIX或类UNIX系统上进行开发的程序员来说都是一笔宝贵的财富。

    apue 2e code

    下载"apue.2e"这个压缩包,你可以获得作者提供的所有示例程序,这些程序展示了如何实际应用书中介绍的API和技术。通过阅读和运行这些代码,学习者能够更深入地理解UNIX系统编程的精髓。 1. **系统调用**:APUE详细...

    基于linux学习apue

    APUE,全称为Advanced Programing in the UNIX Environment,是UNIX环境下高级程序设计的一本经典教材,由Steven McCanne和Stevens R. L.合著。本书深入探讨了在UNIX/Linux系统中进行程序设计的各种技术和实践,为...

    只使用APUE的libapue.a库文件和apue.h头文件的例程,有Makefile

    标题中的“只使用APUE的libapue.a库文件和apue.h头文件的例程”指的是使用Andrew Tannenbaum的《Advanced Programming in the UNIX Environment》(APUE)一书中的库函数和头文件来编写C程序。APUE是学习UNIX系统...

    apue例子源码 已编译好

    APUE例子源码是书中各章节示例代码的集合,这些代码可以帮助读者更好地理解和实践书中的理论知识。 在你提供的压缩包"apue.2e"中,包含了已编译好的源码,这意味着你可以直接在你的系统上运行这些程序,无需自己...

    apue.h 《UNIX环境高级编程》 头文件

    将apue.h和error.c两个文件copy到该目录下。(apue.h位于 your_apue_path/inlcude ; error.c位于your_apue_path/lib ) 以我的了路径为例: #cp /home/ucfree/apue.2e/inlcude/apue.h . #cp /home/ucfree/apue.2e/...

    apue2.chm

    apue2.chm.此书为英文.

    UNIX环境编程apue.h

    解压后,你可以通过这些例子了解如何在实际程序中应用`apue.h`。 在`UNIX高级环境编程apue.h配置详解.docx`文档中,可能详细介绍了配置过程,包括如何安装必要的依赖,如何在Makefile中设置路径,以及如何解决可能...

    APUE头文件与error文件

    通过阅读和分析这两个文件,我们可以了解到如何在实践中构建类似的工具集,以提高开发效率和程序的可读性。 在实际的项目中,程序员可以根据自己的需求对"apue.h"进行扩展或修改,以适应特定的开发环境和团队规范。...

    unix环境高级编程2的apue.h头文件

    `apue.h`包含了一些用于文件描述符操作的函数,例如`fdopen`, `dup2`和`close_nullop`。`fdopen`用于将已存在的文件描述符转换为标准C库的FILE指针;`dup2`用于复制一个文件描述符到另一个描述符,常用于重定向I/O...

    UNIX环境高级编程源码 APUE2E源码

    通过研究APUE2E的源代码,你不仅可以学习到上述知识点,还能了解到如何编写高效、可维护的UNIX程序,这对于想要在系统级编程领域深化的开发者来说是非常宝贵的资源。在实践中,你可以尝试修改源码,看看改变后的结果...

    apue2e_src.rar

    这个压缩包"apue2e_src.rar"包含了该书的源代码,为读者提供了丰富的实践材料。APUE深入讲解了在UNIX环境下进行高级程序设计的各种技术,包括进程管理、文件系统、网络编程、信号处理等核心主题。 1. **进程管理**...

    APUE 2nd 英文原版

    《APUE 第二版 英文原版》是一本专注于UNIX环境高级编程的权威著作,由W.Richard Stevens和Stephen A. Rago共同撰写。Stevens是UNIX系统编程领域的权威人士,而Rago在Stevens不幸去世后,对本书进行了更新和扩展。这...

Global site tag (gtag.js) - Google Analytics