Strange VMS bug

Ewan Birney birney at molbiol.ox.ac.uk
Sat Sep 30 05:18:19 EST 1995


Dear bio-netters

I'll probably cross post to VMS group as well, but I was wondering
whether any of the VMS gurus knocking around this group could sort
this one out:

	I am running a database searching program, which as I 
scroll through the file I keep an ftell() index of sequence
positions to re-open the file for alignments... I close
the file fine but when I reopen it I get a NULL and the following
error message in errno...

"invalid default file name string address"

I've traced the point at which I become unable to open the file to 
write file opening: the actual code is

(test_file is this database file.)

#ifdef DEBUG_FILE
                log_full_error(INFO,0,"First test on %s - aln_file is %s",
test_file,aln_file);
                if( (tmp=openfile(test_file,"R")) == NULL)
                        log_full_error(INFO,0,"Was a bummer!");
                else    {
                        log_full_error(INFO,0,"Openfile fine....");
                        fclose(tmp);
                        }                       
#endif              

                if ( (ofp=openfile(aln_file,"W") ) == NULL)
                        {
                log_full_error(WARNING,0,"Unable to open alignment file %s, no
`
                        }
		else	{                

#ifdef DEBUG_FILE
                        log_full_error(INFO,0,"Second test on %s",test_file);
                        if( (tmp=openfile(test_file,"R")) == NULL)
                                log_full_error(INFO,0,"Was a bummer!");
                        else    {
                                log_full_error(INFO,0,"Openfile fine....");
                                fclose(tmp);
                                }                       
#endif

	The first test_file open is fine, the second is not.
	            
                
        Now openfile is the interface between my code and fopen. The rules
in openfile = 
	if( *prot is capital letter) switch on error calling and call fopen with
		smaller letter

	call fopen first

	if it is a read file
	try to append two (on UNIX machines setenv) different strings to
	the file so read files are looked for in a path
		current directory
		WISEPERSONALDIR
		WISECONFIGDIR

Does anyone know what that error message means? Does anyone have an idea
about why it is not working on VMS (BTW - there is no problem on any
flavor of UNIX)

any pointers ( ;) - been programming in C for too long) very wellcome...

ewan birney

birney at molbiol.ox.ac.uk





More information about the Bio-soft mailing list