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

  • colacas

    colacas

    29 EKİM 2006
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006
  • JeezyVEVO

    JeezyVEVO

    12 Mayıs 2009