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

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009