iostatus - Maple Help

Online Help

All Products    Maple    MapleSim


iostatus

indicate status of all open files

 

Description

Thread Safety

Examples

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.

• 

For more information on thread safety, see index/threadsafe.

Examples

fopentestFile,WRITE

0

(1)

opentestFile2,WRITE

1

(2)

iostatus

2,0,7,0,testFile,STREAM,FP=628164,WRITE,TEXT,1,testFile2,RAW,FD=6,WRITE,BINARY

(3)

See Also

feof

file_types

filepos