如何在C程序中执行带参数的可执行文件?
如何在C程序中执行带参数的可执行文件?,c,system,C,System,ints=system(“/my_prog 32”)起作用,但如何将参数作为变量引入整数a=32;int s=(“系统%d”,a)似乎不起作用(“函数'system'的参数太多”) 如何将参数作为变量引入 一种常见的技术是使用sprintf()动态生成命令字符串。例如: char command[100]; int a = 42; sprintf(command, "./my_prog %d", a); int s = system(command); C中的system()函数接受一个con
ints=system(“/my_prog 32”)代码>起作用,但如何将参数作为变量引入<代码>整数a=32;int s=(“系统%d”,a)代码>似乎不起作用(“函数'system'的参数太多”)
如何将参数作为变量引入
一种常见的技术是使用sprintf()
动态生成命令字符串。例如:
char command[100];
int a = 42;
sprintf(command, "./my_prog %d", a);
int s = system(command);
C中的system()函数接受一个const char*
类型的参数。这就是第一个示例有效的原因(不过,第二个示例的格式不正确)
不过,您仍然可以使用stdio.h
中的sprintf()
函数来实现所需的功能<代码>整数a=32;char命令[80];sprintf(命令“./myu prog%d”,a);系统(指挥部)
使用sprintf
创建字符串。snprintf
几乎总是比sprintf
更好的主意@aschepler为什么?因为缓冲区溢出?@John Bollinger狠狠地揍了我一顿