📄 vxtimeclient.c
字号:
/* vxTimeClient.c - RPC client example */
#include "vxWorks.h"
#include "stdio.h"
#include "stdlib.h"
#include "rpcLib.h"
#include "rpc/rpc.h"
#include "time.h"
LOCAL CLIENT * pClient;
/*************************************************
*
* printTime - print the date and time in a human-
* readable format.
* For interactive use from the WindSh shell,
* just pass 0 as the second argument ppClient.
* For programmatic use, declare a variable of
* type CLIENT *, initialize it to NULL, and
* pass the address of the variable as the ppClient
* argument. The variable will be set to a newly
* created CLIENT *, which may be reused in later
* calls to printTime by the same task. When the task
* has called printTime () for the last time, it should
* clean up its CLIENT * with a call to
* clnt_destroy().
*/
STATUS printTime
(
char * host,
CLIENT ** ppClient
)
{
char **ptr;
if (ppClient == NULL)
{
pClient = NULL;
ppClient = &pClient;
}
/*
* If *ppClient is NULL, this task has not
* previously called printTime, and we should
* initialize RPC support and create a new
* client handle for it. Note: it's ok to call
* rpcTaskInit() more than once for the same
* task.
*/
if (*ppClient == NULL)
{
if (rpcTaskInit() == ERROR)
{
perror ("rpcTaskInit() failed");
return (ERROR);
}
*ppClient = clnt_create (host, TIME_PROG,
TIME_VERS, "tcp");
if (*ppClient == NULL)
{
perror ("clnt_create failed");
return (ERROR);
}
}
if ((ptr = print_time_1 (NULL, *ppClient))
== NULL)
{
perror ("print_time_1 failed");
clnt_destroy (*ppClient);
*ppClient = NULL;
return (ERROR);
}
printf (*ptr);
free (*ptr);
/*
* interactive use: destroy *ppClient.
* otherwise, caller is responsible.
*/
if (ppClient == &pClient)
clnt_destroy (pClient);
return (OK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -