assertion "ptr != MAP_FAILED" failed while using mmap

Elfyn McBratney elfyn@cygwin.com
Wed Jun 25 16:51:00 GMT 2003


On Wed, 25 Jun 2003, Alex Vinokur wrote:

> ===========================================
> Windows 2000
> CYGWIN_NT-5.0 1.3.22(0.78/3/2)
> GNU gcc version 3.2 20020927 (prerelease)
> ===========================================
>
> Here is some function.
>
> --------------------------------------
> void read_file (char* filename_i)
> {
> int fd = open(filename_i, O_RDONLY);
>   assert (fd > 2);
>
> off_t sz = lseek(fd, 0, SEEK_END);
> char* ptr = (char*)mmap(0, sz, PROT_READ, 0, fd, 0);
>
>   assert (ptr != MAP_FAILED);  // Here assertion failed
>   if (ptr != MAP_FAILED)
>   {
>     string str(ptr, ptr+sz);
>     munmap(ptr, sz);
>   }
>
>   close(fd);
> }
> --------------------------------------
>
> Assertion  "ptr != MAP_FAILED)" failed.
> What might cause that?

This is just a stab in the dark, of course, but surely `ptr != MAP_FAILED'
would indicate that the mmap did not fail? Assertions (assert()) are based on
true or false, so the above assert is false in that `ptr != MAP_FAILED'.

Elfyn

-- 


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list