Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新gcc编译器的警告_C_Gcc - Fatal编程技术网

新gcc编译器的警告

新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明确指定在任何情况下只处理参数的前

我试图用gcc 8编译我的代码

我面临以下警告:-

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您是否知道截断的路径名也可能与现有文件匹配?