3 * @author Shinichiro Nakamura
4 * @brief NT-Shellで用いる小規模libcの実装。
8 * ===============================================================
9 * Natural Tiny Shell (NT-Shell)
11 * ===============================================================
12 * Copyright (c) 2010-2011 Shinichiro Nakamura
14 * Permission is hereby granted, free of charge, to any person
15 * obtaining a copy of this software and associated documentation
16 * files (the "Software"), to deal in the Software without
17 * restriction, including without limitation the rights to use,
18 * copy, modify, merge, publish, distribute, sublicense, and/or
19 * sell copies of the Software, and to permit persons to whom the
20 * Software is furnished to do so, subject to the following
23 * The above copyright notice and this permission notice shall be
24 * included in all copies or substantial portions of the Software.
26 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
28 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
30 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
31 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
32 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
33 * OTHER DEALINGS IN THE SOFTWARE.
34 * ===============================================================
39 size_t ntlibc_strlen(const char *s)
50 char *ntlibc_strcpy(char *des, const char *src)
63 char *ntlibc_strcat(char *des, const char *src)
79 int ntlibc_strcmp(const char *s1, const char *s2)
81 char *p1 = (char *)s1;
82 char *p2 = (char *)s2;
85 return (*p1 < *p2) ? -1 : 1;
93 return (*p1 < *p2) ? -1 : 1;
97 int ntlibc_strncmp(const char *s1, const char *s2, size_t n)
99 char *p1 = (char *)s1;
100 char *p2 = (char *)s2;
107 return (*p1 < *p2) ? -1 : 1;
120 char *str_a = "That";
122 printf("strcmp(%s,%s) = %d, %d\n",
124 strcmp(str_a, str_b),
125 ntlibc_strcmp(str_a, str_b));
126 printf("strncmp(%s,%s,2) = %d, %d\n",
128 strncmp(str_a, str_b, 2),
129 ntlibc_strncmp(str_a, str_b, 2));
130 printf("strncmp(%s,%s,3) = %d, %d\n",
132 strncmp(str_a, str_b, 3),
133 ntlibc_strncmp(str_a, str_b, 3));