SORU
7 Kasım 2009, CUMARTESİ


Neden kullanılmamalıdır bu işlevi, çok tehlikeli olur.

gets işlevini kullanan bir C kodu derlemeye çalıştığımda bir uyarı alıyorum: warning: the gets function is dangerous and should not be used.

Bu koruma ve güvenlik yığını ile bir ilgisi hatırlıyorum, ama tam emin değilim. Birisi bu uyarı çıkarılması için yardım eder ve böyle bir uyarı yok niçin? gets "tehlikeli" o zaman neden biz bunu kaldırabilir mi? eğer öyleyse

CEVAP
7 Kasım 2009, CUMARTESİ


gets güvenli bir şekilde kullanmak için, tam olarak kaç kişi okuma olacak karakterler senin arabellek yeterince büyük hale getirebilir. Sadece tam olarak ne okuma ne olacağını biliyorsan.

gets, yerine imza olan fgets kullanmak istediğiniz

char* fgets(char *string, int length, FILE * stream);

(Eğer bütün bir satırı okurfgets, dizedeki '\n' bırakır; bununla başa çıkmak Zorundasınız.)

Dilin resmi bir parçası 1999 ISO C standardı bu, ama kaldı resmi olarak 2011 standart tarafından kaldırıldı. En C uygulamaları hala destek, ama en azından gcc kullanan herhangi bir kod için bir uyarı verir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • booba1234

    booba1234

    22 Temmuz 2006
  • READ DESCRIPTION NOW!!!!!!!

    READ DESCRIP

    18 ŞUBAT 2009
  • Tire Rack

    Tire Rack

    31 Mayıs 2007