kjb_query - Prompt the user for terminal input and returns the result.


#include "l/l_io.h"

Example compile flags (system dependent):
   -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 

long kjb_query
	const char *prompt,
	char *input,
	size_t input_size


const char *prompt
Prompt for the query
char *input
A buffer for the reply.
size_t input_size
Max number of characters to read including NULL


Writes the character string "prompt" on the terminal, and reads up to input_size minus 1 characters from the terminal into "input". A NULL is added to the end of input. The routine returns when a carriage return is entered, or as soon as input_size minus 1 characters are read. The routine also returns when the end-of-file character (often CTL-D) is entered. If input_size is 2, then the routine returns as soon as the user depresses a key. If input_size is less then 2, then the return is immediate.


On error, kjb_query returns ERROR. Possible problems include failure to obtain a terminal device. On success, the number of characters read is returned. See also; term_get_line, term_getc, enhanced_term_getc, yes_no_query


This routine reads from the terminal, regardless of whether or not stdin is a terminal.


It is programming error to make input_size greater than INT_MAX.


Some keys generated escape sequences which are more than one character. Since this routine will only read up the input_size minus 1 character, such characters can be missed. Thus this routine is not a good choice for general purpose "cbreak" input.


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


Kobus Barnard


Kobus Barnard


set_program_prompt , print_blanks , rep_print , count_real_lines , count_data_lines_until_next_header , count_tokens_in_file , get_real_line , string_count_real_lines , string_get_real_line , get_command_text , add_line_to_input_stream , read_int_from_file , read_dbl_from_file , push_no_overwrite , pop_no_overwrite , set_no_overwrite , get_no_overwrite