SORU
8 Temmuz 2015, ÇARŞAMBA


Neden tek bir bağımsız değişken (dönüşüm belirteçleri) itiraz ile, basit bir beşgen kullanmaktır.

Okuduğum bir kitapta, tek bir bağımsız değişken (dönüşüm belirteçleri) printf önerilmiyor yazıyor. Yerine bunu önerir

printf("Hello World!");

ile

puts("Hello World!");

ya

printf("%s", "Hello World!");

Biri printf("Hello World!"); yanlış olduğunu bana söyleyebilir mi? Güvenlik açıkları içeren kitapta şöyle yazılmıştır. Bu güvenlik açıkları nelerdir?

CEVAP
8 Temmuz 2015, ÇARŞAMBA


printf("Hello World!"); savunmasız IMHO ama bu göz önünde bulundurun:

const char *str;
...
printf(str);

Eğer str olur göstermek için bir dize içeren %s biçim belirteçleri, programınız olacak sergi tanımsız davranış (çoğunlukla kazası), oysa puts(str) sadece görüntü dizesi gibi.

Örnek:

printf("%s");   //undefined behaviour (mostly crash)
puts("%s");     // displays "%s"

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GFX Tutorials

    GFX Tutorial

    12 AĞUSTOS 2013
  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011