最近项目遇到一个第三方应用调用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个都可以使用。
文章作者:沃航科技