Standards, Environments, and Macros extendedFILE(5)
NAME
extendedFILE - enable extended FILE facility usage
SYNOPSIS
$ ulimit -n Nfiledescriptors
$ LDPRELOAD32=/usr/lib/extendedFILE.so.1 application [arg...]
DESCRIPTION
The extendedFILE.so.1 is not a library but an enabler of the
extended FILE facility.
The extended FILE facility allows 32-bit processes to use
any valid file descriptor with the standard I/O (see
stdio(3C)) C library functions. Historically, 32-bit appli-
cations have been limited to using the first 256 numerical
file descriptors for use with standard I/O streams. By
using the extended FILE facility this limitation is lifted.
Any valid file descriptor can be used with standard I/O. See
the NOTES section of enableextendedFILEstdio(3C).
The extended FILE facility is enabled from the shell level
before an application is launched. The file descriptor limit
must also be raised. The syntax for raising the file
descriptor limit is
$ ulimit -n maxfiledescriptors
$ LDPRELOAD32=/usr/lib/extendedFILE.so.1 application [arg...]
where maxfiledescriptors is the maximum number of file
descriptors desired. See limit(1). The maximum value is the
same as the maximum value for open(2).
ENVIRONMENT VARIABLES
The following environment variables control the behavior of
the extended FILE facility.
STDIOBADFD This variable takes an integer
representing the lowest file descrip-
tor, which will be made unallocat-
able. This action provides a protec-
tion mechanism so that applications
that abuse interfaces do not experi-
ence silent data corruption. The
value must be between 3 and 255
inclusive.
SunOS 5.11 Last change: 18 Apr 2006 1
Standards, Environments, and Macros extendedFILE(5)
STDIOBADFDSIGNAL This variable takes an integer or
string representing any valid signal.
See signal.h(3HEAD) for valid values
or strings. This environment variable
causes the specified signal to be
sent to the application if certain
exceptional cases are detected during
the use of this facility. The default
signal is SIGABRT.
EXAMPLES
Example 1 Limit the number of file descriptors and FILE
standard I/O structures.
The following example limits the number of file descriptors
and FILE standard I/O structures to 1000.
$ ulimit -n 1000
$ LDPRELOAD32=/usr/lib/extendedFILE.so.1 application [arg...]
Example 2 Enable the extended FILE facility.
The following example enables the extended FILE facility.
See enableextendedFILEstdio(3C) for more examples.
$ ulimit -n 1000
$ STDIOBADFD=100 STDIOBADFDSIGNAL=SIGABRT \
LDPRELOAD32=/usr/lib/extendedFILE.so.1 \
application [arg ...]
Example 3 Set up the extended FILE environment and start the
application.
The following shell script first sets up the proper extended
FILE environment and then starts the application:
#!/bin/sh
if [ $# = 0 ]; then
echo "usage: $0 application [arguments...]"
exit 1
fi
ulimit -n 1000
# STDIOBADFD=196; export STDIOBADFD
SunOS 5.11 Last change: 18 Apr 2006 2
Standards, Environments, and Macros extendedFILE(5)
# STDIOBADFDSIGNAL=SIGABRT; export STDIOBADFDSIGNAL
LDPRELOAD32=/usr/lib/extendedFILE.so.1; export LDPRELOAD32
"$@"
FILES
/usr/lib/extendedFILE.so.1 enabling library
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWcsl (32-bit)
Interface Stability Stable
MT-Level Safe
SEE ALSO
limit(1), open(2), enableextendedFILEstdio(3C),
fdopen(3C), fopen(3C), popen(3C), signal.h(3HEAD),
stdio(3C), attributes(5)
WARNINGS
The following displayed message
Application violated extended FILE safety mechanism.
Please read the man page for extendedFILE.
Aborting
is an indication that your application is modifying the
internal file descriptor field of the FILE structure from
standard I/O. Continued use of this extended FILE facility
could harm your data. Do not use the extended FILE facility
with your application.
SunOS 5.11 Last change: 18 Apr 2006 3
|