iostatus - indicate status of all open files
|
Description
|
|
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:
1.
|
The file descriptor (from fopen, open, pipe, or popen)
|
2.
|
The name of the file, pipe, or process
|
3.
|
The file type (STREAM, RAW, PIPE, PROCESS, or DIRECT)
|
4.
|
FP=address for a STREAM or PROCESS, FD=num otherwise
|
5.
|
The file mode (READ or WRITE)
|
6.
|
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.
|
|
|
Thread Safety
|
|
•
|
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.
|
|
|
Examples
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
|
|
Download Help Document
Was this information helpful?