最近项目遇到一个第三方应用调用putty实现远程vpn连接,我们需要获取命令行参数需求。通常linux下我会直接写一个shell脚本劫持该命令,但是这次由于是windows下的软件,后缀决定了使用什么解释器去调用它,因此只能写一个简单的调用程序,下面就是我写的用来劫持命令参数的小工具。
#include <stdio.h>
#include <unistd.h>
#define LOGPATH "F:\\putty.log" // log文件路径必须要有写权限
int main (int argc, char* argv[]) {
char* args[32];
int i;
FILE* fp = fopen(LOGPATH, "wb");
for (i = 0 ; i < argc ; i++) {
fprintf(fp, "%s ", argv[i]);
args[i] = argv[i];
}
fclose(fp);
args[0] = "putty1.exe";
args[i] = NULL;
execvp(args[0], args);
return 0;
}上述代码使用不需要任何依赖关系,只要参数小于32个都可以使用。
文章作者:沃航科技