如何在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狠狠地揍了我一顿