A simple logging service built on top of a message queu
$30-250 AUD
Κλειστή
Αναρτήθηκε περίπου 6 χρόνια πριν
$30-250 AUD
Πληρωμή κατά την παράδοση
The task is broken into three parts, a message logging server, a library to log messages, and
a driver to test the library.
2.1 Message Logging Server
The message logging server should attempt to create the message queue, if this fails then
it should terminate with an error message, it should not run if the message queue actually
exists (IPC_EXCL will help here).
Once connected to the message queue, the program should sit in a loop, receiving a message,
and printing it to the stdout. Messages should be formatted:
id: message
where id is the type from the message structure and message is the message field.
The server should shutdown cleanly (i.e. delete the message queue) on receipt of a
SIGINT (generated by pressing control and C keys at the same time).
The sample code files logservice.h and logserver.c should form the basis of
your solution for this part.
2.2 Messaging library
The messaging library consists of two functions, both defined in logservice.h:
int initLogService()
This function should initialise the message queue to log messages to, returning
an id if successful, and -1 on error.
This function should not attempt to create the message queue, only attach it to
the process.
int logMessage(int id, char *message)
This function logs the message passed as the string message to the log
service id. It should return 0 on success and -1 on error.
When sending a message, the function should encode the processes pid into
the type field of the message, and the string into the message field.
1
It is your choice what to do if the message is too long (i.e. longer than
MSGCHARS), sample behaviours include breaking the message up into
smaller pieces or simply rejecting it. Whatever the choice, the documentation in
the header file should reflect this choice.
The sample code files logservice.h and logservice.c should form the basis of
your solution for this part.
2.3 Test Driver
This program is used to test the functionality of the library described in Section 2.2. It need
not be complex, but is should be able to determine, and report if any errors have occurred.
The sample code files logservice.h and logclient.c should form the basis of
your solution for this part.
BeYoutifool designs, are creative, unconventional, and impeccably unique. These designs give personality to your brand. The convergence of brilliance and simplicity, is the inception of your successBe what you believe in. BE-YOU Our PORTFOLIO will Speak for us.