提交 7e89fb90 创建 作者: rsc's avatar rsc

add safestrcpy

上级 cd08e6e0
......@@ -39,6 +39,7 @@ void* memset(void*, int, uint);
int memcmp(const void*, const void*, uint);
void* memmove(void*, const void*, uint);
int strncmp(const char*, const char*, uint);
char* safestrcpy(char*, const char*, int);
// syscall.c
void syscall(void);
......
......@@ -57,3 +57,19 @@ strncmp(const char *p, const char *q, uint n)
else
return (int) ((uchar) *p - (uchar) *q);
}
// Like strncpy but guaranteed to NUL-terminate.
char*
safestrcpy(char *s, const char *t, int n)
{
char *os;
os = s;
if(n <= 0)
return os;
while(--n > 0 && (*s++ = *t++) != 0)
;
*s = 0;
return os;
}
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论