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 : : }