- 论坛徽章:
- 0
|
我正在做一个对pptp运行管理的程序。
用execl 函数调用pptp-1.7.2 不知道要传哪些参数进去。请那位高手告诉我。
持续等待中。
程序的流程大致为:
typedef struct process_tag
{
pid_t pid;
char state[128]; //enable or disable
struct xmlnode * pptp_parameter; //运行pptp的参数;
char name[256]; // 用户操作的pptp名字。
strcut process_tag *next;
}process_tag;
伪代码为
int main()
{
(1)用每个pptp运行参数初始化process_tag 节。
(2)创建unix域。设置为不阻塞监听。
(3)通过坚持每个process_tag 节点的state成员是否为“enable”, 如果为"enable" 则创建一个进程,启用一个pptp进程。
do
{
ret = select(......); //等待 每隔5秒
if(ret =>0)
{
(4)得到用户输入命令内容,
(4.1)判断用户输入的命令是否有效,及那种类型的命令。格式可以自己定,我在程序中定的格式为” c xxx 或 d xxx“ 。
(4.2)判断要操作的对象的名称与process_tag 成员name值是否匹配。如果匹配,则:
(4.2.1)如果是命令1 (即: d xxx),检查xxx 对应的pid 是否大于0,如果大于零,则杀死这个进程,把state 的值设置为“disable” pid 的值为-1;
(4.2.2)如果是命令2 (即: c xxx),检查xxx 对应的pid 是否大于0,如果小于零,创建一个进程。则启用这个进程,把state 的值设置为“enbble” pid 的值为 =getpid();
(5)while((exitpid = waitpid(-1, &state, NOHONG)) >0)
{
exitpid 与每个节点中的pid 成员比较,判断哪个匹配,找到了就设置其对应的成员pid = -1; stage ="disable"
打印退出状态。
}
(3)通过坚持每个process_tag 节点的state成员是否为“enable”, 如果为"enable" 则创建一个进程,启用一个pptp进程。
}
}while(1);
}
在启用每个pptp时,我是用execl函数去调用的,但现在不知到要传那些参数进行。请大家告诉我。先谢谢了。
持续等待中!!!!!!!!!!!!!!!!!!!!!!
或发邮件给我的邮箱harris11727@yahoo.com |
|