greatbridf 2 лет назад
Родитель
Сommit
44395a727c
2 измененных файлов с 15 добавлено и 1 удалено
  1. 1 1
      include/kernel/stdio.h
  2. 14 0
      src/kernel/stdio.c

+ 1 - 1
include/kernel/stdio.h

@@ -17,7 +17,7 @@ extern "C" {
 void* memcpy(void* dst, const void* src, size_t n);
 void* memset(void* dst, int c, size_t n);
 size_t strlen(const char* str);
-char* strncpy(char* dst, const char* src, size_t max_n);
+char* strncpy(char* dst, const char* src, size_t n);
 int strcmp(const char* s1, const char* s2);
 
 ssize_t

+ 14 - 0
src/kernel/stdio.c

@@ -449,6 +449,20 @@ size_t strlen(const char* str)
     return n;
 }
 
+char* strncpy(char* dst, const char* src, size_t n)
+{
+    size_t len = strlen(src);
+
+    if (len < n) {
+        memset(dst + len, 0x00, n - len);
+        memcpy(dst, src, len);
+    } else {
+        memcpy(dst, src, n);
+    }
+
+    return dst;
+}
+
 int strcmp(const char* s1, const char* s2)
 {
     int c;