我有下面的代码片段,它通过C程序执行脚本。
char upgrd_bb[512] = "";
sprintf(upgrd_bb,"/usr/bin/./UPGRD_BB_ALL '%s'", path_argv[5]);
if(!(system(upgrd_bb)))
{
dw_flag = 0;
printf("Unable to Upgrade BB ");
}
在交叉编译期间,我得到错误
/home/ubuntu/Documents/FileOper.c:829:14: warning: universal character names are only valid in C++ and C99
/home/ubuntu/Documents/FileOper.c:829:14: error: incomplete universal character name U
make: *** [/home/ubuntu/Documents/FileOper.o] Error 1
如果我将脚本的名称更改为任何其他字符,它编译得很好。任何人都能专注于此吗。
提前感谢!!
在字符串中
"/usr/bin/./UPGRD_BB_ALL '%s'"
您有一个序列U
,它被视为Unicode转义序列。如果您删除额外的反斜杠以获得
"/usr/bin/./UPGRD_BB_ALL '%s'"
那你就应该准备好了。
另一方面,如果名称中需要额外的反斜杠,则对其进行转义:
"/usr/bin/./\UPGRD_BB_ALL '%s'"
希望这能有所帮助!