kralhakan2009 1
kralhakan2009
Bodyguardd 1
Bodyguardd
Vahsi Uzman 1
Vahsi Uzman
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Bvural41 1
Bvural41
mavzermete 1
mavzermete
kaptanmikro1 1
kaptanmikro1
Reklam vermek için turkmmo@gmail.com

Simple Custom Logs

  • Konuyu başlatan Konuyu başlatan durda
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 16
  • Görüntüleme Görüntüleme 2K
Gordugum birkac eksiklikleri belirtecegim.


CreateDirectoryA fonksiyonunun donus degerini kontrol etmiyorsun, eger birisi klasoru "x/logs" seklinde degistirirse ve x klasoru mevcut degilse fonksiyon basarisiz olur.



Ayni sekilde donus degerini kontrol etmemissin fopen fonksiyonunun, eger basarisiz olursa null pointer doner.



va_end cagirmamissin.


Kaynaklar
 
Gordugum birkac eksiklikleri belirtecegim.


CreateDirectoryA fonksiyonunun donus degerini kontrol etmiyorsun, eger birisi klasoru "x/logs" seklinde degistirirse ve x klasoru mevcut degilse fonksiyon basarisiz olur.



Ayni sekilde donus degerini kontrol etmemissin fopen fonksiyonunun, eger basarisiz olursa null pointer doner.



va_end cagirmamissin.


Kaynaklar
Eve gidince düzeltirim <3
 
yukardaki arkadaşa ek olarak bende gördüklerimi yazayım.

constructor de vectör temizlenmesine gerek yok zaten boş olarak oluşturur.
ve make_unique ile default destructor tanımlayabilirsin, class da tekrar kendin kullanmana gerek kalmaz;
m_fp.emplace_back(std::make_unique<FILE*>(fopen((path + "/" + v).c_str(), "w"), ::fclose));
[] operatörü yerine .at kullanırsan daha güvenli olur şuanki halde kontrol olmadığı için indexin doğru değer verdiği belli değil
time, localtime, fprintf gibi c fonksiyonları yerine std::chrono ve std::cout kullanabilirsin
sıralı ve kontrollü bir liste kullanıyorsan std::vector yerine std::set daha uygun olur.
_vsnprintf yerine string stream kullanılabilir.
 
yukardaki arkadaşa ek olarak bende gördüklerimi yazayım.

constructor de vectör temizlenmesine gerek yok zaten boş olarak oluşturur.
ve make_unique ile default destructor tanımlayabilirsin, class da tekrar kendin kullanmana gerek kalmaz;
m_fp.emplace_back(std::make_unique<FILE*>(fopen((path + "/" + v).c_str(), "w"), ::fclose));
[] operatörü yerine .at kullanırsan daha güvenli olur şuanki halde kontrol olmadığı için indexin doğru değer verdiği belli değil
time, localtime, fprintf gibi c fonksiyonları yerine std::chrono ve std::cout kullanabilirsin
sıralı ve kontrollü bir liste kullanıyorsan std::vector yerine std::set daha uygun olur.
_vsnprintf yerine string stream kullanılabilir.
tamam. yalnız ballı adamsın :D tam custom deleter bakıyordum üstüne sen yazdın
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst