c语言 - 无法执行以字符 'U' 开头的脚本



我有下面的代码片段,它通过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'"

希望这能有所帮助!

相关内容

  • 没有找到相关文章

最新更新