iostatus
indicate status of all open files
Description
Thread Safety
Examples
The iostatus function takes no arguments, and returns a list of at least three elements.
The number of files open by the I/O library
The number of currently active nested "read" commands
The upper bound on iostatus()[1] + iostatus()[2]
For each open file, an additional element appears in the list. Each element is itself a list, whose elements are:
The file descriptor (from fopen, open, pipe, or popen)
The name of the file, pipe, or process
The file type (STREAM, RAW, PIPE, PROCESS, or DIRECT)
FP=address for a STREAM or PROCESS, FD=num otherwise
The file mode (READ or WRITE)
The file type (TEXT or BINARY)
Element 2, the name, contains the actual file name for a STREAM or RAW file, "pipe:n" where "n" is the actual file descriptor for a PIPE file, the process name (ie. the command) for a PROCESS file, and "default" or "terminal" for a DIRECT file.
Element 4 gives the internal representation of the file, either a file pointer (FILE *) or file descriptor (int). This is useful when opening a pipe, because whatever you connect the other end of the pipe to needs to know the actual file descriptor, not the Maple file descriptor.
The iostatus command is thread safe as of Maple 15.
iostatus returns the status of the i/o system at the moment at which iostatus is executed. However events occurring in parallel threads can effect the status as soon as iostatus has returned.
For more information on thread safety, see index/threadsafe.
fopen⁡testFile,WRITE
0
open⁡testFile2,WRITE
1
iostatus⁡
2,0,7,0,testFile,STREAM,FP=628164,WRITE,TEXT,1,testFile2,RAW,FD=6,WRITE,BINARY
See Also
feof
file_types
filepos
Download Help Document