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