如何用C语言写一个类似命令行的程序,能够不断地从其他程序接收命令并执行

我想写一个类似于命令行的程序,但是想要能够从其他程序传递命令到这个程序并且执行,那么这两个程序要分别运用什么样的命令才能够具体实现呢?

举个最简单的例子:

// 程序 rec_cmd.c
#include <stdio.h>
int main(int argc, char* argv[])
{
    printf("I've received a command: %s\n", argv[1]);
    return 0;
}

// 程序 send_cmd.c
#include <stdlib.h>
int main(void)
{
    system("rec_cmd \"print hello world\"");
    system("rec_cmd \"print how are you\"");
    return 0;
}

以上两个程序一个发送指令,一个接受指令。关键是 system() 函数,可以嵌入命令行,这样就可以实现将程序指令发给另一个程序了。

追问

但是这样做只能在程序 rec_cmd.c刚开始运行的时候才有效,我希望是第一个程序处于始终在运行并且一直在等待命令的一种状态,因为有些状态数据是在第一个程序里的,这应该怎么办呀?比如就像Mathematica调用kernel这样的形式是怎么做到的?

追答

我能想到的方法挺多的,就是有点小复杂。

    用 socket,做成 client-server 模式

    用内存共享

    用 WIN32 中的消息循环。一个负责发消息,一个负责收。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-28
用system()…………
相似回答