NAME

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

PARAMETERS

const 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 const_sget_line_2() is similar to const_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 not (const char**), then use sget_line_2() instead of casting. Both sget_line() and const_sget_line() 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 const_sget_line() can be used instead.

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