[archive] I$IO and file handles

[Migrated content. Thread originally posted on 16 February 2008]

I would like to use the I$IO routines as part of a generalized DECLARATIVES procedure, specifically for handling locking. What I'd like is for the declarative procedure to get control when a locked record is read, then handle waiting for the lock to be released. The wait would be done by re-trying the read some number of times, with a delay between each attempt. The problem is the read in the declarative procedure. Use of the I$IO routines occurred to me, but I don't know how to get the handle that I need, since the program uses standard OPEN/CLOSE/READ statements.

Is there a way to convert the OS handle that I can get by passing the open file to a subroutine to the POINTER/handle that the I$IO routines expect?