Selamu aleykum
bir kac sorum olacak.
1) Arkadaslar UDF'i server ne zaman load eder ve zaman freelibrary komutunu cagirir?
2) UDF'ler birden cok Client kullaniminda IsMultiThread komutu kullanildigi halde ayni bellek adresi catismasi yasayabilir mi?
2) malloc ile string valueler icin bellekte rezerve ettigim alani value geri döndükten hemen sonra nasil free edebilirim? ki, bellekte bosluklar kalmasin!
3) stringler haricinde diger veri tipleri icinde malloc kullanmak gerekir mi?
4) UDF deklare ederken BY VALUE ve BY REFERENCE arasindaki fark ne dir?
Tesekkür ederim...
udf Load, FreeLibrary, Malloc
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
udf Load, FreeLibrary, Malloc
kıdemsiz üye
Re: udf Load, FreeLibrary, Malloc
UDF kullanmadım ama 3. ve 4. Soruları C açısından cevaplamaya çalışayım. Malloc veya alloc ile pointer olarak ifade ettiğiniz değişkenler için bellekte yer açarsınız. Tüm diziler pointerdir. Stringler de dizi olduğuna göre bellek tahsisi yapıyoruz. Bir fonksiyon içinde bellek tahsisi yapmışsaniz ve bu bellek adresini pointer olarak geri döndürmüşseniz fonksiyonun atandığı değişken free edildiğinde bu bellekte yok olacaktır. Diğer değişkenler için derleyici otomatik tahsis kodları ekler.
Re: udf Load, FreeLibrary, Malloc
Hocam ellerine saglik. Cok guzel anlatmissin.
Ben bir udf yazdim. Blob, integer, pchar, double, date vesaire result olarak döndürüyor. Internette okudugum bir makaleye gire udf kullaniminda planlama ve bellek yapisina cok dikkat etmek gerekiyormus. Aksi taktirde es zamanli cagirilan udf'lerin bellek cakismasi yada bellekte boslukla olusturmasi muhtemelmis. Bu tur bilgileri vermis makalede fakat cozum adina hic bir bilgi sunmamis. Ozellikle by value ve by reference kullanimina dikkat cekmis. Ne istedigini bilmelisin yazmis.
Bunlarin aciklamasi olmadigi icin, hangi yolun beni hedefe ulastiracagi konusunda ikilemde kaliyorum.
Yazdigim udf calistigi halde, ileride beklenmedik bir sorun cikartir dusuncesinden dolayi su an kullanamiyorum.
Ben bir udf yazdim. Blob, integer, pchar, double, date vesaire result olarak döndürüyor. Internette okudugum bir makaleye gire udf kullaniminda planlama ve bellek yapisina cok dikkat etmek gerekiyormus. Aksi taktirde es zamanli cagirilan udf'lerin bellek cakismasi yada bellekte boslukla olusturmasi muhtemelmis. Bu tur bilgileri vermis makalede fakat cozum adina hic bir bilgi sunmamis. Ozellikle by value ve by reference kullanimina dikkat cekmis. Ne istedigini bilmelisin yazmis.
Bunlarin aciklamasi olmadigi icin, hangi yolun beni hedefe ulastiracagi konusunda ikilemde kaliyorum.
Yazdigim udf calistigi halde, ileride beklenmedik bir sorun cikartir dusuncesinden dolayi su an kullanamiyorum.
kıdemsiz üye
Re: udf Load, FreeLibrary, Malloc
Arti bir soru:
interbase udf'leri multithread olarak kullaniyorsa, global tanimlanmis degiskenleri kullanan fonksyonlari thread guvenli yapmak gerekir mi? criticalsection kullanmalimiyiz?
interbase udf'leri multithread olarak kullaniyorsa, global tanimlanmis degiskenleri kullanan fonksyonlari thread guvenli yapmak gerekir mi? criticalsection kullanmalimiyiz?
kıdemsiz üye
Re: udf Load, FreeLibrary, Malloc
by reference pointer olarak kullanmayı kastediyor. Multithread olarak kullanıyordur büyük ihtimal, en azından ayrı kullanıcı için yeniden açıyordur. Siz yinede önleminizi alın. Global sabitler dışında değişken kullanmayın. Fonksiyonlarınızın değişkenlerini pointer olarak tasarlayın. Bellek tasarrufu edersiniz. By value olarak değer döndürmekten kaçının. Bazı durumlarda kaçış olmayabiliyor tabi.