Fragen? Antworten! Siehe auch: Alternativlos
memcpy_s ist im Annex K und optional und glibc implementiert das nicht. dietlibc implementiert das auch nicht, weil es das Äquivalent von Gendern für C ist. Bringt nichts, regt nur alle auf und macht Code weniger portabel.
Old and busted: memcpy(dest,src,bytecount);
New hotness: memcpy_s(dest,destsize,src,bytecount);
Ich habe persönlich beobachtet, wie sie das bei Windows per Fiat des Mufti eingeführt haben, und die Leute sich dann alle Makros gehackt haben, um memcpy(a,b,c) zu memcpy_s(a,c,b,c) umzuschreiben.
Anyway, wenn euch diese Warnungen so auf den Sack gehen wie mir, dann kriegt ihr die so weg:
$ cat ~/.clang-tidyIch hab keine Ahnung, wieviel Lack die clang-tidy-Leute saufen mussten, um sich diesen Scheiß schönzureden. Das bringt das ganze Projekt in Verruf, wenn sie statt sinnvoller Fehlerdiagnostik die Entwickler mit solchem Rotz nerven.
Checks: "-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling"
Im Übrigen, wenn ihr es noch nie gemacht habt, und unter Windows programmiert: Probiert doch mal aus, was passiert, wenn man memcpy_s so aufruft, dass destsize < bytecount ist. "Sicherer", my ass.