新gcc编译器的警告
我试图用gcc 8编译我的代码 我面临以下警告:-新gcc编译器的警告,c,gcc,C,Gcc,我试图用gcc 8编译我的代码 我面临以下警告:- warning: [-Wformat-truncation=] 120 | snprintf( test, sizeof test, "%s", testpath); 有了gcc 5,我就可以编译了。但是对于gcc 8,我面临着这个问题。请您帮助解决这个问题需要做些什么,以便在gcc 8上编译这个问题。您需要使用例如%.254s,或者在您的情况下使用%.221s/.32s明确指定在任何情况下只处理参数的前
warning: [-Wformat-truncation=]
120 | snprintf( test, sizeof test, "%s", testpath);
有了gcc 5,我就可以编译了。但是对于gcc 8,我面临着这个问题。请您帮助解决这个问题需要做些什么,以便在gcc 8上编译这个问题。您需要使用例如%.254s,或者在您的情况下使用%.221s/.32s明确指定在任何情况下只处理参数的前254个字符 该警告旨在确保输出端不会出现意外截断的字符串,而是以有意义的方式截断输入 或者,您应该检查snprintf的返回值。如果为负,则输出被截断 当您既没有截断输入以保证不会发生输出截断,也没有在输出被截断时执行错误处理时,GCC9将向您发出警告
在您的特定情况下,看起来您正在构造一个路径,当以任何形式截断时,该路径都是无用的,因此验证snprintfis的返回值实际上应该做什么。这是一个警告,因此编译仍然成功,除非您使用-Werror编译。也请阅读以下内容:是的,但我们如何在我的代码中修复此问题?@Naga您是否知道截断的路径名也可能与现有文件匹配?