4 ms·
You tend to get warnings to use the _s versions of some functions (strcpy_s in this case) these days.
by iamnotacrook 7y ago
You tend to get warnings to use the _s versions of some functions (strcpy_s in this case) these days.
- cesarb 7y agoI just tried (with gcc 9.2.1), and got no warning. As far as I know, these _s versions aren't that good, and often aren't available at all; see http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm which says among other things "[...] none of the popular Open Source distribution such as BSD or Linux has chosen to make either available to their users. At least one (GNU C Library) has repeatedly rejected proposals for inclusion [...]" "[...] As a result of the numerous deviations from the specification the Microsoft implementation cannot be considered conforming or portable."
- iamnotacrook 7y ago"often aren't available at all" It's in C11. Perhaps Red Hat use non-compliant compilers, or very, very old ones?
- cesarb 7y agoIt's an optional part of C11, which means that even a fully compliant compiler does not have to implement them.
- lone_haxx0r 7y agostrcpy_s has no manual entry on Ubuntu, while "man strcpy" and "man strncpy" work as expected. Why would that be?