NAME

ss1l - Scan a long from a string

SYNOPSIS

#include "l/l_sys_scan.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 ss1l
(
	const char *input_str,
	long *long_ptr
);

DESCRIPTION

This routine reads a long from a string with more sophisticated error reporting that available using scanf. If the contents of "str" is exactly one number which will fit into a long (i.e., it is between LONG_MIN and LONG_MAX), it sets *long_ptr to that number and returns NO_ERROR. Otherwise and error message is set, and ERROR is returned. The contents of *long_ptr are only changed on success.

RETURNS

If "str" represents a valid long, then NO_ERROR is returned. Otherwise the problem with "str" is reported in the set error message, and ERRROR is returned. The problem with "str" can be printed with kjb_print_error.

NOTE

For successful return, "str" cannot contain two numbers. For example, it can't be something like "1 2".

MACROS

ss1i64, ss1i32, ss1i16 These macros can be used to force scanning of a certain integer size. The argument of these is normally a pointer to kjb_int64, kjb_int32, or kjb_int16 as appropriate.

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

ss1ul , ss1spl , ss1pl , ss1pl_2 , ss1ui , ss1i , ss1spi , ss1pi , ss1pi_2 , ss1us , ss1s , ss1sps , ss1ps , ss1ps_2 , ss1f , ss1snf , ss1d , ss1snd