X-Recipient: archive-cygwin AT delorie DOT 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:reply-to:from:to:references:in-reply-to :subject:date:message-id:mime-version:content-type :content-transfer-encoding; q=dns; s=default; b=BAb1WfHjDxspRhqt MuW7fdNxdKdw85ZNQ80UDLdpzzDJCWn3SmXzr51gEFwD/vytp451poAI123r8U4W eTM+sfwKVluh8Ig75PqyfDVg7D4I73GGuvF8TMxWkvw428kLKuAOnpbXzmfqyhly G8ph/JARaihBQFTjvk8TZyKZFZE= 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:reply-to:from:to:references:in-reply-to :subject:date:message-id:mime-version:content-type :content-transfer-encoding; s=default; bh=M1A6XufWg5Ieg149yGbdTd xpm8o=; b=vOKyq/8JdGdM0k2T6cZJrsfyrrKSlsx25EqLi0SDJ+EIQEaU7dOmC/ 67cNy7+GuIirVwhkHoFFiNWJnooULGKasjJyZjHnn0Hyi3/1XPLngB1bjk8svOie 8qhxzsZjIIdnoLlq7g6336Is5eoKaEXFLc2M/pnUrMiV4lUAbsIJU= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 X-HELO: m1plsmtpa01-04.prod.mesa1.secureserver.net Reply-To: From: "Steven Bardwell" To: References: <01a801cf1cfa$77957900$66c06b00$@lbmsys.com> <20140129181250 DOT GW2821 AT calimero DOT vinschen DOT de> <52E95786 DOT 8050606 AT gmail DOT com> <20140130095822 DOT GY2821 AT calimero DOT vinschen DOT de> In-Reply-To: <20140130095822.GY2821@calimero.vinschen.de> Subject: RE: second call to mmap() results in error Date: Thu, 30 Jan 2014 07:25:37 -0500 Message-ID: <001801cf1db6$66c47c40$344d74c0$@lbmsys.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-IsSubscribed: yes Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id s0UCQ2sU027876 > > On 29/01/2014 19:12, Corinna Vinschen wrote: > > >On Jan 29 09:00, Steven Bardwell wrote: > > >>My application needs several areas of shared memory, and I am getting > an > > >>error ("No such device") on the second call to mmap(). The first call > works > > >>fine. > > Sorry guys, but it still works fine for me. I tried your testcase on W7 > 32, W7 64 in 32 and 64 bit, and on Windows 8.1 64 in 32 and 64 bit. I > tried it with Cygwin 1.7.27 and with the latest snapshot. I'm always > getting the output "Shared memory initialized" and no error at all. > > > Any chance one of you guys could debug this further, by stepping through > the Cygwin mmap64 function, preferredly using the latest snapshot or, > a self-built Cygwin DLL from? > > > Corinna I reinstalled Cygwin, rebooted and the error persisted. Running 'gdb' and stepping through the program showed that the call to mmap() fails for /block1 also -- it is returning an invalid address. This simplification of the program shows that error on my machine ('Bus error (core dumped)' ) occurs when it tries to do the memcpy() to the mapped address. #include #include #include #include #include #include #include int main() { int shm_fd1; char *mmap1; shm_fd1 = shm_open("/block1", O_CREAT | O_RDWR, 0666); if (shm_fd1 == -1) { fprintf(stderr, "Couldn't get fd for block1 (%s)\n", strerror(errno)); exit(1); } ftruncate(shm_fd1, 524304); mmap1 = mmap(NULL, 524304, PROT_WRITE | PROT_READ, MAP_SHARED, shm_fd1, 0); if (mmap1 == (char *)-1) { fprintf(stderr, "Couldn't map memory for /block1 (%s)\n", strerror(errno)); exit(1); } memcpy(mmap1, "ABCDEF\0", 7); fprintf(stdout, mmap1); fprintf(stdout, "Shared memory initialized\n"); exit(0); } Steve -- 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