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

  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009