mirror of
https://github.com/gbowne1/ClassicOS.git
synced 2026-02-11 21:35:20 -08:00
Merge pull request #117 from gbowne1/klibc-strncpy
[klibc] implment strncpy function
This commit is contained in:
@@ -10,5 +10,6 @@ extern void* memset(void* dst, int c, size_t n);
|
|||||||
|
|
||||||
extern size_t strlen(const char *s);
|
extern size_t strlen(const char *s);
|
||||||
extern int strcmp(const char *s1, const char *s2);
|
extern int strcmp(const char *s1, const char *s2);
|
||||||
|
extern char *strncpy(char *dst, const char *src, size_t n);
|
||||||
|
|
||||||
#endif // CLASSICOS_KLIBC_STRING_H
|
#endif // CLASSICOS_KLIBC_STRING_H
|
||||||
|
|||||||
@@ -105,3 +105,19 @@ int strcmp(const char* s1, const char* s2) {
|
|||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *strncpy(char *dst, const char *src, size_t n) {
|
||||||
|
char *q = dst;
|
||||||
|
const char *p = src;
|
||||||
|
char ch;
|
||||||
|
|
||||||
|
while (n) {
|
||||||
|
n--;
|
||||||
|
*q++ = ch = *p++;
|
||||||
|
if (!ch) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(q, 0, n);
|
||||||
|
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user