You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成无参数Linux可执行文件以替代带参数的run_program?

解决方案

方法一:Bash脚本包装(最简单实现)

创建一个名为run_program_wrapper的文件,写入以下内容:

#!/bin/bash
./run_program -i 7

执行命令赋予该文件可执行权限:

chmod +x run_program_wrapper

之后直接将这个脚本作为参数传给测试工具:

./run_test -s ./run_program_wrapper

测试工具执行该脚本时,会自动触发run_program -i 7的调用。

方法二:编译C++包装程序(生成原生二进制)

如果需要生成和run_program同类型的二进制可执行文件,而非脚本,可以编写极简的C++代码:

#include <cstdlib>

int main() {
    char* cmd_args[] = {(char*)"./run_program", (char*)"-i", (char*)"7", nullptr};
    // 替换当前进程为目标程序,执行成功后不会返回
    execvp(cmd_args[0], cmd_args);
    // 仅当execvp执行失败时才会执行到这里
    return 1;
}

将代码保存为wrapper.cpp,用g++编译:

g++ wrapper.cpp -o run_program_wrapper

得到的run_program_wrapper是独立二进制文件,直接传给测试工具即可:

./run_test -s ./run_program_wrapper

说明:原写法无效的原因

你尝试的./run_test -s { run_program -i 7 }写法错误在于,bash中的{}是命令组语法,它会直接执行内部命令,但不会生成一个可执行文件路径传递给run_test。而run_test要求接收的是可执行文件的路径,而非一段待执行的命令逻辑。

内容的提问来源于stack exchange,提问作者speeecht

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:05:22