使用 Ttyutils 截获 UNIX/Linux 终端
2008-09-23 08:23:44 来源:WEB开发网RPC 服务
远程过程调用 (remote process call)RPC 服务是 ttyexec 为进程间通讯提供的接口,注意它和 SUN RPC 没有任何的关系,并且不能跨网络使用。
当事件触发时,事件动作程序被启用,事件动作程序是一个标准的应用程序,它可以做任何它喜欢的事情,但是有时候,它需要和 ttyexec 交互,例如它可能需要获取当前终端屏幕的内容, ttyexec 为这样的情况提供了准备,称为 RPC 服务。
Ttyexec 提供了下面的服务 :
snap: 获取当前终端屏幕的快照;
feed: 发送数据作为实终端的标准输入;
suspend/resume_stdio: 悬挂 / 恢复实终端标准输入;
suspend/resume_stdout: 悬挂 / 恢复实终端标准输出;
insert/remove_event: 添加 / 删除事件表中的事件;
下面用一个例子描述如何编写一个 C 程序来使用上面提供的 feed 服务,包括从源代码编写到编译,连接完整的步骤。
#include <ttyutils.h>
int
main (int argc, char *argv[])
{
TRpcTarget target;
if (!t_init ())
return 1;
target.rt_timeout = 3;
target.rt_type = RPC_TARGET_PTS;
target.rt_pts = "/dev/pts/3";
if (!t_rpc_call_set_target (&target))
{
t_println ("set rpc target failed.");
return 1;
}
if (!t_rpc_call_feed ("hello", 5))
{
g_warning (_("rpc call failed."));
return 1;
}
t_uninit ();
return 0;
}
将上面的代码保存到文件 example.c,然后到用下面的命令编译它 :
更多精彩
赞助商链接