X-Recipient: archive-cygwin@delorie.com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
	:list-unsubscribe:list-subscribe:list-archive:list-post
	:list-help:sender:message-id:date:from:reply-to:mime-version:to
	:subject:references:in-reply-to:content-type
	:content-transfer-encoding; q=dns; s=default; b=V7dJsFJmB531mFcf
	a1CJjT9+VBHI508MUeSsq5iCCVsnbnZOtULYTKR90r9ufAYgSywoz7CTmn03JfzY
	yFAPKoeofnrY76wCkc5CCytyN42F8eUzeSFJ8rkBP79VXADrYIWvnxkDhmYBQUBq
	VTsoth+nf9OhtjIwntiS3TcqMWo=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
	:list-unsubscribe:list-subscribe:list-archive:list-post
	:list-help:sender:message-id:date:from:reply-to:mime-version:to
	:subject:references:in-reply-to:content-type
	:content-transfer-encoding; s=default; bh=ga7n7CK3bKX9ukbuIA6baz
	MZXMs=; b=JrP4hOgfKOq8YOvVWN4SR0CSuo3ck/Wbo1QvVvOuv0qxu+9s844j1h
	nOOATGLQNz+pHM81XaIZyxv8Z0B+tMe3h2dweuEadF+oCRpTNnwq3NzJNjAEgEn2
	4XAEVU6uYM2nNw3gtqYZxJDN+xo2+FuZMQ15sE8a05FXrNji/Kmxc=
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2
X-HELO: vms173025pub.verizon.net
Message-id: <52EAA848.7070808@cygwin.com>
Date: Thu, 30 Jan 2014 14:30:16 -0500
From: "Larry Hall (Cygwin)" <reply-to-list-only-lh@cygwin.com>
Reply-to: cygwin@cygwin.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0
MIME-version: 1.0
To: cygwin@cygwin.com
Subject: Re: second call to mmap() results in error
References: <20140129181250.GW2821@calimero.vinschen.de> <52E95786.8050606@gmail.com> <20140130095822.GY2821@calimero.vinschen.de> <001801cf1db6$66c47c40$344d74c0$@lbmsys.com> <20140130124558.GA2821@calimero.vinschen.de> <003801cf1dbd$fc3ffc70$f4bff550$@lbmsys.com> <20140130170142.GD2821@calimero.vinschen.de> <5F8AAC04F9616747BC4CC0E803D5907D0C4763CC@MLBXv04.nih.gov> <52EA9A53.2050203@cygwin.com> <5F8AAC04F9616747BC4CC0E803D5907D0C4764C5@MLBXv04.nih.gov> <20140130183956.GA3573@ednor.casa.cgf.cx> <5F8AAC04F9616747BC4CC0E803D5907D0C4764ED@MLBXv04.nih.gov> <52EA9EA2.5030202@cygwin.com> <5F8AAC04F9616747BC4CC0E803D5907D0C476528@MLBXv04.nih.gov> <52EAA171.406@cygwin.com> <5F8AAC04F9616747BC4CC0E803D5907D0C4765D8@MLBXv04.nih.gov>
In-reply-to: <5F8AAC04F9616747BC4CC0E803D5907D0C4765D8@MLBXv04.nih.gov>
Content-type: text/plain; charset=ISO-8859-1; format=flowed
Content-transfer-encoding: 7bit

On 1/30/2014 2:04 PM, Lavrentiev, Anton (NIH/NLM/NCBI) [C] wrote:
>> Forget mmap().
>
> Why?  The response was:
>
>> Adding the <unistd.h> fixes the problem in all its iterations -- the original mmap()
>> test works (without the call to ftruncate()), as well as the second one.
>
> Note *the original*.

<http://cygwin.com/ml/cygwin/2014-01/msg00494.html>.  Note here Corinna
says:

   Your testcase is missing an ftruncate or two., btw.

So if the question is why do you need to include ftruncate() in the code, 
take a look here:

  <http://pubs.opengroup.org/onlinepubs/009695399/functions/mmap.html>.

In particular:

   Note that references beyond the end of the object do not extend the
   object as the new end cannot be determined precisely by most virtual
   memory hardware. Instead, the size can be directly manipulated by
   ftruncate().

So the code as written requires ftruncate() to work in a defined manner.
But if you don't include unistd.h, you don't get the prototype and you
end up with ftruncate() failing, which causes mmap() to fail.

-- 
Larry

_____________________________________________________________________

A: Yes.
 > Q: Are you sure?
 >> A: Because it reverses the logical flow of conversation.
 >>> Q: Why is top posting annoying in email?

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

