NAME

sget_line_2 - Reads a line from a string into a buffer

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 sget_line_2
(
	char **str_ptr,
	char *line,
	size_t max_len,
	size_t *num_chars_processed_ptr
);

PARAMETERS

char **str_ptr
Address of string pointer. Will be moved to next line.
char *line
Buffer for the line.
size_t max_len
Size of buffer.
size_t *num_chars_processed_ptr
Number of characters returned

DESCRIPTION

The routine sget_line_2() is similar to sget_line() except that the number of characters is reliably returned in the fourth argument.

RETURNS

If there are no more characters to be read, then EOF is returned. If the buffer is not large enough, SET_BUFFER_OVERFLOW_BUG() is called, and TRUNCATED is returned. Otherwise NO_ERROR is returned.

NOTE

If the argument is (const char**), then use const_sget_line_2() instead of casting. Both sget_line_2() and const_sget_line_2() do the same thing. Neither change the actual string being parsed, only the position pointer. There are two versions to better communicate with various compilers.

NOTE

If the number of characters read is not required, then num_chars_processed_ptr can be NULL, or, more elegantly, the routine sget_line() can be used.

RELATED

sget_line, fget_line, dget_line

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_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 , const_sget_line_2 , get_str_indent , last_char , kjb_reverse , output_str