On Wed, 25 Jun 2003, Elfyn McBratney wrote: > 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 > > Ehm..
If ptr != MAP_FAILED is not true, that means ptr == MAP_FAILED. assert(ptr != MAP_FAILED) thus fails if mmap fails.. unless I'm missing something.. rlc -- 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/