私は最近、C の大学のコースを修了しました。したがって、もちろん経験が不足しています。
一部の大学は、学生に安全なプログラミング、または少なくともいくつかの要素を教える傾向があります。動画もあります(こちらからどうぞ)。
Cで文字列をコピーするには、私が知る限り、strcpyまたはstring.h関数が必要です。日常のプログラミングでどのように安全に使用しますか? バッファオーバーフローを防ぐために割り当てを処理する関数はありますか? Cの CERT セキュア コーディング標準があります。例と準拠ソリューションを提供しています。
int main(int argc, char *argv[]) {
/* ... */
char prog_name[128];
strcpy(prog_name, argv[0]);
/* ... */
}
そして、それらの代替手段は次のとおりです。
int main(int argc, char *argv[]) {
/* ... */
char *prog_name = (char *)malloc(strlen(argv[0])+1);
if (prog_name != NULL) {
strcpy(prog_name, argv[0]);
}
else {
/* Couldn't get the memory - recover */
}
/* ... */
}
here から取得、2番目の例。
しかし、私が知る限り、それはより挑戦的で、より多くのコードとより多くの作業です。なぜ誰もライブラリ自体を変更しないのですか? または、少なくとも、これを適切な方法で処理する安全な代替ライブラリまたは関数を誰も提供しないのはなぜですか?
読んでくれてありがとう、ウィシ