NAME

kjb_buff_cpy - 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 


int kjb_buff_cpy
(
	char *s1,
	const char *s2,
	size_t max_len
);

DESCRIPTION

This routine is similar to kjb_strncpy except that truncated copying due to buffer size is considered a bug and some additional checks are made in development code. Specifically, the buffer size can't be 4 which, amoung other things, gaurds against buffer sizes derived from the sizeof() operator applied to pointers.

RETURNS

ERROR if buffer overflow is detected (treated as a bug), NO_ERROR otherwise.

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_strncpy, 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_strncpy , 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