, sv_catpv()
aşağıdaki gibi çalışır: SV olduğu dizenin sonuna üzerinesv_catpv() ve sv_catpvs() arasındaki fark nedir? <a href="http://perldoc.perl.org/perlapi.html#SV-Body-Allocation">perlapi</a> göre
bitiştirir
NUL
nihayetti dize. SV, UTF-8 durum kümesine sahipse, eklenen baytların geçerli UTF-8 olması gerekir. Kolları 'almak' büyü, ama 'set' büyü değil.sv_catpvn
gibiama bir dize/uzunluk çiftinin yerine değişmez dize alır: does bu olsa
void sv_catpv(SV *const sv, const char* ptr)
ben kullanacağım
sv_catpvs()
buldum XS öğreticiler çoğu, .
void sv_catpvs(SV* sv, const char* s)
Bu çok yararlı değil, o yüzden sv_catpvn()
bakalım:
bitiştirir dize SV olduğu dizenin sonuna üzerine.
len
, kopyalanacak bayt sayısını gösterir. SV, UTF-8 durum kümesine sahipse, eklenen baytların geçerli UTF-8 olması gerekir. Kolları 'almak' büyü, ama 'set' büyü değil.
void sv_catpvn(SV *dsv, const char *sstr, STRLEN len)
sv_catpvn
ayrı bir parametre olarak dize uzunluğunu alır dışında
sv_catpv
aynı şeyi yapar ve edebi dize almasıdır
sv_catpvs
sv_catpvn
aynıdır.
Eksik olduğum sv_catpv
ve sv_catpvs
arasında bazı ince farklar var mı, yoksa aynı şeyi yapmanın iki yolu mu?
sv_catpvs'nin aslında null karakterleri içerebileceği anlamına gelir – ysth
Evet, ancak bu istenmeyen bir yan etkidir. – ikegami