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