| delorie.com/archives/browse.cgi | search |
| 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: | <cygwin.cygwin.com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| 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: | <sbardwell AT lbmsys DOT com> |
| From: | "Steven Bardwell" <SBardwell AT lbmsys DOT com> |
| To: | <cygwin AT cygwin DOT com> |
| 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 |
| X-IsSubscribed: | yes |
| 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 <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/errno.h>
#include <fcntl.h>
#include <sys/mman.h>
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
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |