3 ms·
This article is a bit misleading. Linux kernel programming uses C, but not the C standard library and never has. The string functions discussed here are "help
by wpollock 3mo ago
This article is a bit misleading. Linux kernel programming uses C, but not the C standard library and never has. The string functions discussed here are "helper" functions included in the kernel and are not part of the standard library.
The C standard library doesn't have strscpy or the others; it still has strncpy.
- bitwize 3mo agoShould be using strcpy_s or strncpy_s.
- wpollock 3mo ago> Should be using strcpy_s or strncpy_s These functions are optional in the C standard and not always present. AFAIK, they are not included in glibc as of 2025.
- eqvinox 3mo agoAnnex K (which is what that is) is sufficiently unpopular as to have been under discussion to be removed from the standard. Few implementations exist, and even fewer conform to the standard (e.g. Microsoft's doesn't). https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm Furthermore, since the kernel uses no C library, it's the kernel developer's choices what to implement and use.
- sidewndr46 3mo agoIsn't Microsoft the same group that still won't allow you to write "import <cstdint>" in C++ ?
- pjmlp 3mo agoVC++ has the only actually usable header units implementation across C++ compilers.
- rurban 3mo agoUnpopular because it came from Microsoft. But it works, and with my safeclib even usable in the kernel. The cited document is outdated. This is a better overview: https://rurban.github.io/safeclib/doc/safec-3.9/d6/d31/md_doc_2libc-overview.html https://rurban.github.io/safeclib/doc/safec-3.9/d6/d31/md_do...