c语言程序执行多个可执行程序问题

linux下 c程序,例如a1.c a2.c a3.c已经通过gcc编译成可执行的程序。
运行./a1 输出“hello1”
运行./a2 输出“hello2”
运行./a3 输出“hello3”
现在需求是写一段c代码程序aa.c,在里面可以配置参数选择执行a1, a2, a3哪个程序,
编译aa.c,
运行./aa -a1 输出“hello1”,
运行./aa -a2 输出“hello2”,
运行./aa -a3 输出“hello3”,

linux下 aa.c程序怎么写?

aa.c 文件的代码如下:

#include <stdio.h>
#include <windows.h>

int main(int argc, char *argv[]) {   

    int length = sizeof(argv[1]) / sizeof(char);

    for (int i = 0; i < length - 1; i++)
    {
        argv[1][i] = argv[1][i + 1];
    }

  //以上代码从 '-a1' 中剔除掉' -' 得到 'a1'
    system(argv[1]);   //运行 a1

    return 0;
}

将编译后的aa.exe 和 a1.exe,a2.exe,a3.exe 放到 同一目录

然后在dos提示符下,转到上述四个exe文件所在目录,按以下格式输入:

 aa -a1  //命令行参数个数argc =2 , 第一个参数argv[0] = "aa" ,  第二个参数argv[1] = "-a1" 。结合aa.c代码看一下就明白了。

即会调用相应的程序。

测试结果如下图:
图片说明

用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

可以跟句main函数参数的设置用vfork拉起一个应用程序或者写个shell

写个Python 多简单 print commands.getstatusoutput("./a1") C语言路径改了 还不容易改

https://my.oschina.net/u/249511/blog/64065