NAME
kjb_read - Reads up to specified number of bytes from a device
SYNOPSIS
#include "l/l_sys_io.h"
Example compile flags (system dependent):
-DLINUX_386 -DLINUX_386_P4
-I/home/kobus/include
-L/home/kobus/load/linux_386_p4 -L/usr/local/lib -L/usr/lib
-lKJB -llapack -lblas -lg2c -lXext -lX11
long kjb_read
(
int des,
void *buff,
size_t len
);
PARAMETERS
-
int des
-
File descriptor
-
void *buff
-
Buffer for read
-
size_t len
-
Number of bytes to read
DESCRIPTION
Similer to system read except that error handling is simplified. If the
number of bytes requested is more than MIN_OF(LONG_MAX, SSIZE_MAX), this
routine returns ERROR.
RETURNS
On success kjb_read returns the number of bytes read. On end of file. EOF
is returned. On failure ERROR is returned and an error message is set.
If the I/O is non blocking, then WOULD_BLOCK may also be returned.
Finally, depending on the type of signal handling in place, INTERRUPTED
may also be returned.
NOTE
The routine kjb_read_2() can be used to get around the above byte limit
to a certain extent, but under many circumstances, only a factor of 2
more bytes can be read in this way and, in fact, typically only up to a
factor of 2 more bytes are likely to be available. .
DISCLAIMER
This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
AUTHOR
Kobus Barnard
DOCUMENTOR
Kobus Barnard
SEE ALSO
kjb_read_exact
,
kjb_read_2
,
safe_pipe_write
,
kjb_write
,
kjb_write_2
,
kjb_fread_exact
,
kjb_fread
,
kjb_fread_2
,
kjb_fwrite
,
kjb_fwrite_2
,
kjb_fflush
,
kjb_ioctl
,
set_blocking
,
set_no_blocking
,
fget_line
,
dget_line
,
fput_line
,
kjb_mkdir
,
kjb_mkdir_2
,
kjb_unlink
,
kjb_unlink_2
,
kjb_rmdir
,
kjb_fopen
,
kjb_freopen
,
kjb_fdopen
,
kjb_fclose
,
kjb_realpath
,
get_fd_name
,
get_user_fd_name
,
kjb_fseek
,
kjb_ftell
,
kjb_fputs
,
kjb_fgetc
,
kjb_fputc
,
pso
,
p_stderr
,
kjb_fprintf
,
pdo
,
kjb_vfprintf
,
is_file
,
is_directory
,
fp_get_path_type
,
get_path_type
,
get_file_size
,
fp_get_byte_size
,
get_file_age
,
get_file_mod_time
,
print_underlined
,
start_stdout_shadow
,
stop_stdout_shadow
,
start_stderr_shadow
,
stop_stderr_shadow
,
kjb_glob
,
kjb_simple_glob