C:无论如何,要将参数加载到system()调用中

C:无论如何,要将参数加载到system()调用中,c,variables,arguments,system,C,Variables,Arguments,System,可以在系统调用中放入参数吗 差不多 system("rm %s %s", string1, string2) 系统功能的原型为: int system(const char *command); 那么,不。但是,怎么样: snprintf(buffer, sizeof(buffer), "rm %s %s", target1, target2); system(buffer); 试试这个: private: char command[128]; char temp[10] = {'

可以在系统调用中放入参数吗

差不多

system("rm %s %s", string1, string2)

系统
功能的原型为:

int system(const char *command);
那么,不。但是,怎么样:

snprintf(buffer, sizeof(buffer), "rm %s %s", target1, target2);
system(buffer);
试试这个:

private:    
char command[128];
char temp[10] = {'"','I','P','v','4','"'}; //snprintf();
public:
int SysInfo(){
    snprintf(command,sizeof(command), "ipconfig | find  %s > save.log",temp);
    system(command);
}

我还想指出
asprintf
的存在,它可以方便地为您分配必要的缓冲区(您需要
释放
)。避免您自己计算缓冲区大小。@DarkDust:
asprintf
是GNU&*BSD扩展。这不一定是件坏事,但仍然..@Michael Foukarakis:
snprintf
是C99函数。这通常是值得一提的。我真的很讨厌人们会说:做这件事是个坏主意,或者做那件事是错误的,并且没有说明原因@JeremyP为什么使用system()是个坏主意P@PALEN
system()
启动一个shell,然后执行其中的命令字符串。这太慢了
system()
始终阻塞,直到命令执行完毕,除非将
&
放在末尾,在这种情况下,您无法判断命令何时结束<代码>系统()/<代码>是不安全的,因为环境变量可以改变命令行的意思。C++,但是问题是关于C的。