dyer@arktouros.mit.edu (Steve Dyer) (08/31/90)
An application built with Clipper (a dBase III clone) appears to run fine on DOS 3.3 and networked systems but fails under AIX PS/2 1.2 DOS Merge in the middle of indexing large database files (INDEX ON...) with a fatal error which Clipper support indicates is a file creation error. The file system is the "networked" UNIX files system, not a DOS partition. The program fails regardless of whether the program is run as root or an unprivileged user and regardless of whether the default drive is C: or D:. The developer of this program suspected that the problem might lie in creating temporary files, something which INDEX ON apparently does when building indices larger than it can fit in memory. We developed a test program which simply calls the DOS "create temporaty file" system call (subfunction 5A). One of the parameters which can be passed to this DOS function is a string which specifies the drive and directory path in which the temporary file should be placed. Ordinarily, the null string is passed in, indicating the root directory of the current disk. We found some interesting results. This routine fails uniformly under DOS Merge when the null string is passed in with a "Path not found" error, although this works fine under DOS. I suspect that this is the smoking gun which is causing the Clipper application to fail. There were some other anomalies which are not directly related to my problem but are nonetheless interesting: the filenames returned by the "create temporary file" system call under DOS Merge are in lower case (!). Also, when "C:\" is given as the path (this being the UNIX root irectory and not writable by nornal users), the "create temporary file" DOS call still succeeds--it "does the right thing" and creates the file in the UNIX /tmp directory, but the filename returned by the system call does not take this (re)location into account, so attempts by the application program to explicitly delete the file created will fail. I can forward a test program in Microsoft C which will stimulate this error on demand. Is anyone at Locus or IBM willing to take a look? This is AIX PS/2 DOS Merge 1.2 with 1005 patches applied. --- Steve Dyer dyer@ursa-major.spdcc.com aka ...!{harvard,linus,ima,m2c,rayssd}!spdcc!dyer dyer@arktouros.mit.edu, dyer@hstbme.mit.edu