Boost logo

Boost-Build :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2004-12-30 06:43:48


Vladimir Prus wrote:
> Hi Reece,
>> I have been getting the occasional exception in bjam.exe, so I have
>> switched to using a debug build. This has caught an exception in execnt.c:
>>
>> [line]
>> [530] f = fopen( cmdtab[ slot ].tempfile, "w" );
>> [531] fputs( string, f ); // <== HERE
>> [532] fclose( f );
>>
>> The VC++ IDE is reporting that f is 0.
>
> How/when does it happen? If we can prevent 'f' from being 0, it would be
> better than giving an error. What does "perror" print, for example?

f = 0
_doserrno = 5 (EIO)
errno = 13 (EACCES)

>From the MS documentation:

EACCES
Permission denied. The file's permission setting does not allow the
specified access. This error signifies that an attempt was made to
access a file (or, in some cases, a directory) in a way that is
incompatible with the file's attributes.

For example, the error can occur when an attempt is made to read
from a file that is not open, to open an existing read-only file for
writing, or to open a directory instead of a file. Under MS-DOS
operating system versions 3.0 and later, EACCES may also indicate a
locking or sharing violation.

The error can also occur in an attempt to rename a file or
directory or to remove an existing directory.

Using strerror(errno):
EIO = Input/output error
EACCES = Permission denied

Regards,
Reece

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk