SORU
10 AĞUSTOS 2009, PAZARTESİ


C's "kötü" fonksiyonları vs "iyi" alternatif

Nelerdir "" C fonksiyonları, ve ne "iyi" alternatifler? onların kötü

Neden kötü olanları kötü ve iyi olanları daha iyi yapar?

Biliyorum, örneğin, gets() "kötü sınırları herhangi bir formu yok, çünkü" kontrol. Onun daha iyi alternatif nedir? 2**?

scanf() kötü olduğunu duymuştum ama nedenini hatırlamıyorum. Herkes biliyor musun? En iyi alternatif nedir?

Daha fazla var mı?

CEVAP
10 AĞUSTOS 2009, PAZARTESİ


Eski günlerde, string fonksiyonları en sınır kontrolü vardı. Tabii ki sadece eski fonksiyonlarını silmek, ya da kendi imzaları uyumluluk kıracak bir üst sınır, pencere değiştirmek olamazlar. Şimdi, bu fonksiyonların her biri için, orada bir alternatif "n" sürümü. Örneğin:

strcpy -> strncpy
strlen -> strnlen
strcmp -> strncmp
strcat -> strncat
strdup -> strndup
sprintf -> snprintf
wcscpy -> wcsncpy
wcslen -> wcsnlen

Ve daha fazlası.

2013-12-03 düzenleme:

Gcc eğer güvensiz bir işlevi kullanırsanız, bir hata raporu neden olan bir başlık dosyası oluşturmak için bir proje olan da 5* *bakın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jagadambarecords

    jagadambarec

    13 AĞUSTOS 2008
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006