sullivan@vsi.UUCP (Michael T Sullivan) (08/04/88)
Here's something for you C-ISAM folks. We have a program that needs to break up a logical C-ISAM file into different physical files based on date. There is a need to access these various files chronologically. What we were doing was going down the directory these files were in getting file names, doing an isopen(), followed by reading the file, doing an isclose() and going on to the next file until we had reached the last file in the directory. Problem was when a person wanted to go through this searching again, an error would come back when trying to open the directory saying that the file table was full. Turns out that isclose() does a VIRTUAL close on the data files so that if you wanted to re-open them C-ISAM would just look in a table to see which open file descriptors belonged to the file you want. isopen() would just go circularly around the file table merrily opening files. Sounds pretty silly especially in light of the fact that this is undocumented. There is a fix, however. It is an undocumented fix (for an undocumented problem) so I hesitate to post it, but you can call Informix's tech support people (insert maintenance contract disclaimers here) and get a fix that makes isclose() do a REAL close (i.e. close(2)). I don't expect hundreds of people to call Informix after reading this but if you do come up with this error, hopefully you'll have a vague memory of the "solution". -- Michael Sullivan {uunet|attmail}!vsi!sullivan sullivan@vsi.com V-Systems, Inc. Santa Ana, CA I'm too young to have been married 1 year!