使用 Ttyutils 截获 UNIX/Linux 终端
2008-09-23 08:23:44 来源:WEB开发网$ cc -o example example.c `pkg-config --cflags --libs ttyutils-1`
第 1 行包含了头文件 <ttyutils.h>,这是每个外挂程序应该做的。
第 6 行声明了一个 TRpcTarget 结构的变量,这个结构描述如下 :
typedef enum
{
RPC_TARGET_TTY,
RPC_TARGET_PTS,
RPC_TARGET_PID,
RPC_TARGET_PATH
} TRpcTargetType;
typedef struct _TRpcTarget TRpcTarget;
struct _TRpcTarget
{
TRpcTargetType rt_type;
guint32 rt_timeout;
union
{
gchar *t_tty;
gchar *t_pts;
pid_t t_pid;
gchar *t_path;
} rt_target;
};
#define rt_tty rt_target.t_tty
#define rt_pts rt_target.t_pts
#define rt_pid rt_target.t_pid
#define rt_path rt_target.t_path
第 8 行调用了 t_init() 函数,要使用 ttyexec 接口的程序应该首先调用这个函数 ( 在调用其它接口函数之前 )。
第 11 行到 13 行设置 RPC 的目标,这里我们选择的是使用伪终端名称 "/dev/pts/3"。
上面 TRcTargetType 的枚举定义了我们可以使用的连接方式,它们分别是 :
RPC_TARGET_TTY ttyexec 实例使用的终端名称
RPC_TARGET_PTS ttyexec 实例运行命令的伪终端名称
RPC_TARGET_PID ttyexec 的进程 ID
RPC_TARGET_PATH ttyexec 为 RPC 服务建立的 UNIX 套接字名称
结构 TRpcTarget 中的联合体 rt_target 中的每个成员分别对应于每种不同的连接方式。为了方便的访问到 rt_target 中的成员,还分别定义了一些简化的宏 (rt_tty 等等 )。
更多精彩
赞助商链接