📄 snprintf
字号:
#################################################################################### $Revision: 2 $## $Author: mhx $## $Date: 2007/01/02 12:32:28 +0100 $###################################################################################### Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.## Version 2.x, Copyright (C) 2001, Paul Marquess.## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.#### This program is free software; you can redistribute it and/or## modify it under the same terms as Perl itself.##################################################################################=providesmy_snprintf=implementation#if !defined(my_snprintf)#if { NEED my_snprintf }intmy_snprintf(char *buffer, const Size_t len, const char *format, ...){ dTHX; int retval; va_list ap; va_start(ap, format);#ifdef HAS_VSNPRINTF retval = vsnprintf(buffer, len, format, ap);#else retval = vsprintf(buffer, format, ap);#endif va_end(ap); if (retval >= (int)len) Perl_croak(aTHX_ "panic: my_snprintf buffer overflow"); return retval;}#endif#endif=xsinit#define NEED_my_snprintf=xsubsvoidmy_snprintf() PREINIT: char buf[128]; int len; PPCODE: len = my_snprintf(buf, sizeof buf, "foo%s%d", "bar", 42); XPUSHs(newSViv(len)); XPUSHs(newSVpv(buf, 0)); XSRETURN(2);=tests plan => 2my($l, $s) = Devel::PPPort::my_snprintf();ok($l, 8);ok($s, "foobar42");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -