From ff1cdc62f0545d3e8792906cbe1033cdee37bcc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=9F=B3=E5=A4=B4X2?= Date: Tue, 14 Feb 2017 16:05:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=85=E9=A1=BB=E8=BD=AC=E4=B8=BAcstring?= =?UTF-8?q?=EF=BC=8C=E5=90=A6=E5=88=99=E4=BC=9A=E5=BD=93=E4=BD=9C=E7=BC=93?= =?UTF-8?q?=E5=86=B2=E5=8C=BA=EF=BC=8C=E5=B9=B6=E6=8A=8A=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=AD=97=E7=AC=A6=E6=B8=85=E9=9B=B6=E3=80=82?= =?UTF-8?q?=E5=BD=93=E4=BD=9C=E7=BC=93=E5=86=B2=E5=8C=BA=EF=BC=8C=E9=95=BF?= =?UTF-8?q?=E5=BA=A6=E5=8A=A0=E4=B8=80=E4=B9=9F=E5=8F=AF=E4=BB=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kernel/Sys.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Kernel/Sys.cpp b/Kernel/Sys.cpp index d4be12ab..05667024 100644 --- a/Kernel/Sys.cpp +++ b/Kernel/Sys.cpp @@ -242,7 +242,7 @@ extern "C" // 是否新行结尾 static bool newline = false; - int SmartOS_printf(const char* format, ...) + WEAK int SmartOS_printf(const char* format, ...) { if(Sys.Clock == 0 || Sys.MessagePort == COM_NONE) return 0; @@ -269,7 +269,6 @@ extern "C" va_list ap; va_start(ap, format); - //int rs = printf(format, ap); int rs = vsnprintf(&cs[tab], sizeof(cs) - tab, format, ap); va_end(ap); @@ -278,7 +277,8 @@ extern "C" newline = cs[tab + rs - 1] == '\r' || cs[tab + rs - 1] == '\n'; - rs += SmartOS_Log(String(cs, tab + rs)); + // 必须转为cstring,否则会当作缓冲区,并把最后一个字符清零。当作缓冲区,长度加一也可以 + rs += SmartOS_Log(String((cstring)cs, tab + rs)); return rs; }