extendedFILE - enable extended FILE facility usage
$ ulimit –n N_file_descriptors $ LD_PRELOAD_32=/usr/lib/extendedFILE.so.1 application [arg...]
The extendedFILE.so.1 is an obsolete, empty, library, kept for binary compatibility only.
Its old purpose, the use of file descriptors larger than 255 for 32 bit binaries, is now the default behavior in Oracle Solaris.
The libc library now handles the environment variables originally handled by extendedFILE.so.1
The following environment variables control the behavior of the extended FILE facility.
This variable takes an integer representing the lowest file descriptor, which will be made unallocatable. This action provides a protection mechanism so that applications that abuse interfaces do not experience silent data corruption. The value must be between 3 and 255 inclusive. By specifying none, the extended FILE facility is disabled.
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 none.
The following example limits the number of file descriptors and FILE standard I/O structures to 1000.
$ ulimit -n 1000 $ application [arg...]使用例 2 Enable the extended FILE facility.
The following example enables the extended FILE facility. See enable_extended_FILE_stdio(3C) for more examples.
$ ulimit -n 1000 $ _STDIO_BADFD=100 _STDIO_BADFD_SIGNAL=SIGABRT \ application [arg ...]使用例 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 # _STDIO_BADFD=196; export _STDIO_BADFD # _STDIO_BADFD_SIGNAL=SIGABRT; export _STDIO_BADFD_SIGNAL "$@"
enabling library
See attributes(7) for descriptions of the following attributes:
|
limit(1), open(2), enable_extended_FILE_stdio(3C), fdopen(3C), fopen(3C), popen(3C), stdio(3C), signal.h(3HEAD), attributes(7)
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.