NAME

kjb_strncpy - Copies one string to another

SYNOPSIS

#include "l/l_string.h"

Example compile flags (system dependent):
  -DLINUX_X86_64 -DLINUX_X86_64_OPTERON  -DGNU_COMPILER 
   -I/home/kobus/include
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 


void kjb_strncpy
(
	char *s1,
	const char *s2,
	size_t max_len
);

DESCRIPTION

kjb_strncpy is similar strncpy but s1 always gets null terminated - IE max_len includes the null. Also, assuming that max_len is the size of the storage for s1, this routine will not write beyond that storage, including the null. This routine needs to be able to stop copying based on the length. For a version that returns error on truncation, see kjb_buff_cpy().

RETURNS

Unlike stncpy(), this routine does not return anything. The reason is due to the complexity of getting the interface just right on multiple archetectures given that supporting a negative integer return is nice, but that the number of copied characters is potentially MAX_SIZE_T. However, this might be changed in the future, if we get time to make various components consistent.

MACROS

BUFF_CPY(char s1[], char* s2) The buffer size parameter is set to sizeof(s1). Using sizeof to set the buffer size is recomended where applicable, as the code will not be broken if the buffer size changes. HOWEVER, neither this method, nor the macro, is applicable if s1 is NOT a character array. If s1 is declared by "char* s1", then the size of s1 is the number of bytes in a character pointer (usually 4), which is NOT what is normally intended. You have been WARNED!

RELATED

kjb_buff_cpy, kjb_buff_cat, kjb_strncat, extended_lc_strncpy, extended_uc_strncpy

DISCLAIMER

This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.

AUTHOR

Kobus Barnard

DOCUMENTER

Kobus Barnard

SEE ALSO

signed_strlen , trim_beg , const_trim_beg , trim_end , trim_len , gen_trim_beg , const_gen_trim_beg , gen_trim_end , extended_uc_lc , extended_lc_uc , extended_n_uc_lc , extended_n_lc_uc , extended_tolower , extended_toupper , void_strcmp , kjb_strcmp , kjb_memcmp , kjb_strncmp , kjb_ic_strcmp , kjb_ic_strncmp , head_cmp , ic_head_cmp , ptr_strcmp , ptr_strncmp , ptr_ic_strcmp , ptr_head_cmp , ptr_ic_head_cmp , rpad , rpad_cpy , kjb_strdup , str_trunc_cpy , str_trunc_cat , trunc_quote_cpy , kjb_buff_cpy , kjb_memcpy , extended_lc_strncpy , extended_uc_strncpy , kjb_buff_cat , kjb_strncat , cap_first_letter_cpy , str_build , str_n_build , str_char_build , byte_build , increment_byte_copy , fill_with_blanks , find_string , find_char , n_find_char , find_char_pair , count_char , word_in_phrase , char_for_char_translate , remove_duplicate_chars , str_delete , str_insert , sget_line , const_sget_line , sget_line_2 , const_sget_line_2 , get_str_indent , last_char , kjb_reverse , output_str