Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

1 简介在本案例研究中,您将在消息中实现一个简单的日志服务。 2 规格 该任务分为两部分,一个消息记录服务器和一个用于消息记录的库。 服务器侦听收听消息并绘制日志消息。 提供一种更方便的方式访问消息。 您已经获得了一个程序来测试您的库是否与您的 您需要查看讲义以及第 4 节中提供的文档 来实施这些计划。 2.1 消息记录服务器 日志服务器应该尝试创建消息,如果失败则它...

1 answer below »
1 简介在本案例研究中,您将在消息中实现一个简单的日志服务。 2 规格 该任务分为两部分,一个消息记录服务器和一个用于消息记录的库。 服务器侦听收听消息并绘制日志消息。 提供一种更方便的方式访问消息。 您已经获得了一个程序来测试您的库是否与您的 您需要查看讲义以及第 4 节中提供的文档 来实施这些计划。 2.1 消息记录服务器 日志服务器应该尝试创建消息,如果失败则它 以错误终止,如果应消息实际存在,则不运行 (IPC_EXCL将在这里提供帮助)。 连接到消息,程序应该是一个循环中的目标,接收消息sage,将其打印到stdout 。消息的格式应为: 编号:留言 其中id是消息结构中的类型,message是消息字段。 服务器应在收到SIGINT后彻底关闭(即删除消息)(通过同时按下控制和C键生成)。 示例代码文件logservice.h和logserver.c构成 您这部分的解决方案。此文件中有许多注释可以帮助您制定 你的代码。 2.2 消息库 消息传递库包含两个函数,都在 logservice.h 中定义: int initLogService() 这个函数应该初始化消息队列来记录消息,返回 如果成功则为id ,错误时为-1 。 此函数不应尝试创建消息队列,仅将其附加到 过程。 1 int logMessage(int id, char *message) 此函数将作为字符串消息传递的消息记录到日志中 服务标识。它应该在成功时返回0 ,在错误时返回-1 。 发送消息时,该函数应将进程pid编码为 消息的类型字段,以及消息字段中的字符串。 如果消息太长(即长于 MSGCHARS ),示例行为包括将消息分解为 较小的碎片或简单地拒绝它。无论选择什么,文档中的 头文件应该反映这个选择。 示例代码文件logservice.h和logservice.c应构成 您对此部分的解决方案。 3 示例代码 除了示例代码文件之外,还提供了两个附加文件,一个makefile 包含构建规则和服务器启动脚本。 make实用程序简化了大型项目的构建过程,介绍性文档make 的说明包含在文档部分(第 4 节)中。使用make来自动mate 编译过程只需在终端输入“ make ”(与另一个在同一目录中) fifiles),它将使用makefile中定义的规则来构建日志服务器和 来自源文件的logclient可执行文件,它还将确保 启动 server.sh脚本是可执行的。如果此后没有任何源文件发生更改 最后一次构建(基于它们的时间戳)make实用程序不会重新构建可执行文件。 应该不需要修改makefile ,它的格式有点繁琐,所以更安全 从v UWS 下载文件而不是键入它。 启动 server.sh脚本将在新的 termi 中打开logserver程序最终窗口为您服务。此脚本检测主机操作系统并执行等效的 此检测后的动作。无需了解此文件如何实现其目标。
Answered 1 days After May 05, 2022

Solution

Shashi Kant answered on May 06 2022
108 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here