Branch data Line data Source code
1 : : /******************************************************************************
2 : : * Copyright (c) 2004, 2008 IBM Corporation
3 : : * All rights reserved.
4 : : * This program and the accompanying materials
5 : : * are made available under the terms of the BSD License
6 : : * which accompanies this distribution, and is available at
7 : : * http://www.opensource.org/licenses/bsd-license.php
8 : : *
9 : : * Contributors:
10 : : * IBM Corporation - initial implementation
11 : : *****************************************************************************/
12 : :
13 : : #include <stddef.h>
14 : :
15 : : char *strncpy(char *dst, const char *src, size_t n);
16 : 25 : char *strncpy(char *dst, const char *src, size_t n)
17 : : {
18 : 25 : char *ret = dst;
19 : :
20 : : /* Copy string */
21 : 260 : while (*src != 0 && n > 0) {
22 : 235 : *dst++ = *src++;
23 : 235 : n -= 1;
24 : : }
25 : :
26 : : /* strncpy always clears the rest of destination string... */
27 : 290 : while (n > 0) {
28 : 265 : *dst++ = 0;
29 : 265 : n -= 1;
30 : : }
31 : :
32 : 25 : return ret;
33 : : }
|