[Mono-dev] Syscall.mmap problem
Jonathan Pryor
jonpryor at vt.edu
Thu Oct 25 08:50:57 EDT 2007
On Wed, 2007-10-24 at 22:07 -0300, Mauricio Henriquez wrote:
> do you see some mistake?
Yes. Your error handling is completely wrong. :-)
You have:
if((fdin = Syscall.open("/pr.txt", OpenFlags.O_RDONLY)) < 0)
Console.WriteLine("open crash");
else
Console.WriteLine("open fine");
So if "/pr.txt" doesn't exist -- and it doesn't on my machine --
fdin==-1, you write "open crash", and -- the key point -- you continue
executing!
What you should instead do is this:
if((fdin = Syscall.open("/pr.txt", OpenFlags.O_RDONLY)) < 0) {
Syscall.perror ("open");
return;
}
That way you won't continue executing with an invalid file descriptor.
See the attached program, which works w/o error for me.
- Jon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mmap.cs
Type: text/x-csharp
Size: 1140 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20071025/fc344a72/attachment.bin
More information about the Mono-devel-list
mailing list