system()调用中的参数太多

时间:2016-08-30 23:21:48

标签: c arguments

我在C中的system()调用中遇到了参数问题。

代码:

char macaddr[13];
uint8_t mac[6];
memset(macaddr, '\0', 13);
mac_get_ascii_from_file("/sys/class/net/eth0/address", macaddr);

system("rm /var/tuxbox/config/cxx.bin");
system("wget -P /var/tuxbox/config http://xxxxxxx/xx/cxx_%s.bin\n", macaddr);

错误消息:

  

功能'系统'

的参数太多了

2 个答案:

答案 0 :(得分:4)

system()不处理printf样式参数。您需要先构建命令字符串,然后将其传递给系统。

e.g。

char cmd[512];
sprintf(cmd, "wget -P /var/tuxbox/config http://xxxxxxx/xx/cxx_%s.bin\n", macaddr);
// or snprintf(cmd, sizeof(cmd), "wget...
system(cmd);

(注意,不包括错误处理等。)

答案 1 :(得分:0)

就不要写

#include <stdlib.h>

如果您将其写在第一行或第二或第三行中