No, that will make it even worse since you'll be declaring a lot more memory that you actually have.
The real problem is that you're ignoring the truncation, so you probably want to use something like if (snprintf(tempname, sizeof(tempname), "%s.%d", of1name, j) >= sizeof(tempname)) Rf_error("file name is too long"); BTW: most OSes systems have a path limits that are no lower than 256 so you should allow at least as much. Cheers, Simon > On May 29, 2019, at 11:49 AM, jing hua zhao <jinghuaz...@hotmail.com> wrote: > > Dear R-developers, > > I am struggling with packaging with sprintf and snprintf() as the following > WARNINGS from gcc 9.x, > > hap_c.c:380:46: warning: �%d� directive output may be truncated writing > between 1 and 10 bytes into a region of size between 0 and 127 > [-Wformat-truncation=] > hap_c.c:392:46: warning: �%d� directive output may be truncated writing > between 1 and 10 bytes into a region of size between 0 and 127 > [-Wformat-truncation=] > > Essentially, I have > > #define MAX_FILENAME_LEN 128 > char of1name[MAX_FILENAME_LEN],of2name[MAX_FILENAME_LEN], > tempname[MAX_FILENAME_LEN]; > > ... > > snprintf(tempname,sizeof(tempname),"%s.%d", of1name, j); > > It looks I could get around with > > > #define MAX_FILENAME_LEN 128 > > #define MAX_FILENAME_LEN2 256 > > char of1name[MAX_FILENAME_LEN],of2name[MAX_FILENAME_LEN], > tempname[MAX_FILENAME_LEN2]; > > ... > snprintf(tempname,2*sizeof(tempname)+1,"%s.%d", of1name, j) > > It looks a bit waste of resources to me. > > > Any idea will be greatly appreciated, > > > > Jing Hua > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel