system函数接受一个const char* 参数,并根据系统返回一个整数值;通常是命令执行后的状态码。 int system (const char* command); 因此,要从c程序中嵌入变量,必须构建一个命令字符串,然后将其传递给system();除了使用上面建议的sprintf()之外,你还可以使用字符串函数,比如strcat(),从你的C变量构建复杂的命令。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a = 12;
char command[] = "ls";
char opt[] = " -l";
char cmd[50];
strcat(command, opt);
sprintf(cmd, " | head -n %d", a);
strcat(command, cmd);
printf("%s\n", command );
int rv = system(command);
printf("Return value : %d\n", rv);
return 0;
}
2条答案
按热度按时间mwkjh3gx1#
你不能通过任何类型的字符串插值来实现这一点。你需要做的是在将命令字符串传递给
system()
之前构建它。daolsyd02#
system函数接受一个const char* 参数,并根据系统返回一个整数值;通常是命令执行后的状态码。
int system (const char* command);
因此,要从c程序中嵌入变量,必须构建一个命令字符串,然后将其传递给system();除了使用上面建议的
sprintf()
之外,你还可以使用字符串函数,比如strcat()
,从你的C变量构建复杂的命令。