mmap


 
Thread Tools Search this Thread
Special Forums Hardware Filesystems, Disks and Memory mmap
# 1  
Old 07-30-2002
mmap

Hello. I'm writing some random access i/o software on Solaris 8 using mmap64 to memory map large files (my test file is ~25 GB).

The abbreviated code fragment is:

fd = open(cbuf,O_RDONLY|O_LARGEFILE);

struct stat statbuf;
fstat(fd,&statbuf);

off_t len = (off_t)statbuf.st_size; // len = 24974764635

map_ptr = (char *)mmap64(NULL,len,
PROT_READ,
MAP_NORESERVE|MAP_SHARED,
fd,0);

madvise(map_ptr,len,MADV_DONTNEED | MADV_RANDOM);

I think the problem may be mmap's 2nd argument which is (size_t) intead of (off_t) because I only have access up to 3.5 GB, which is about the value of the bottom 32 bytes of len.

Any help you can provide will be greatly appreciated.

Thanks,
gusm
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. BSD

Mmap source

I'm new to kernels and C, and I am tinkering around trying to understand OpenBSD's secure memory management. I'm stumped on a couple points. I've read up on malloc() which was apparently modified years ago to allocate memory using mmap. First question, that would be this here, right? ... (4 Replies)
Discussion started by: dcicc
4 Replies

2. Emergency UNIX and Linux Support

mmap

I want to know whether this is possile or ever been tried out. I want to obtain a chuck of memory using mmap() I do it so : n = mmap(0, 8000, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); And hold on to that memory, when a process requests for memory, some memory is... (2 Replies)
Discussion started by: xerox
2 Replies

3. UNIX for Advanced & Expert Users

Regarding MMAP, MLOCK etc..

Hi I want to lock or prevent a portion of memory which I allocated. So I tried MLOCK, MPROTECT and some like this. But all these functions works only on page border. Can I know why that so. Is that possible to protect a portion of memory which is in middle of the page. Example. int A; ... (1 Reply)
Discussion started by: jionnet
1 Replies

4. Programming

mmap

hai, How do we map 'n' number of files into memory by using mmap system call?? Thanks in advance...... (5 Replies)
Discussion started by: andrew.paul
5 Replies

5. Homework & Coursework Questions

mmap

Descriptions: Develop a program that uses mmap() to map a file to memory space. Prepare such a file by yourself and do the follows. <LI class=MsoNormal>Display the content of the file after mapping; <LI class=MsoNormal>Output how many digits included in the file; <LI class=MsoNormal>Replace... (1 Reply)
Discussion started by: gokult
1 Replies

6. Programming

mmap()

how to use mmap() to map a file to memory space. Do you have any simple program???? Because I have to implement lot of concepts into it. (5 Replies)
Discussion started by: gokult
5 Replies

7. UNIX for Dummies Questions & Answers

mmap()

how to use mmap() to map a file to memory space. Do you have any simple program???? Because I have to implement lot of concepts into it. (3 Replies)
Discussion started by: gokult
3 Replies

8. Solaris

mmap() on 64 bit m/c

Dear Experts, i have a problem related to mmap(), when i run my program on sun for 64 bit which is throwing SIGBUS when it encounters mmap() function, what is the reason how to resolve this one, because it is working for 32 bit. with regards, vidya. (2 Replies)
Discussion started by: vin_pll
2 Replies

9. UNIX for Advanced & Expert Users

mmap and select

I'm using select() to monitor multiple file descriptors (inet sockets) in application. But this application must also collaborate with other applications on the same host via shared memory (mmap'ed file) due to performance reasons. How can I become notification that mmaped memory is changed or... (1 Reply)
Discussion started by: Hitori
1 Replies

10. HP-UX

mmap failed

We recently have been seeing the following type of error on our development server. Being somewhat new to HP-UX I was hoping to get some insight. Here is what I have found. I have been doing some research. /usr/lib/dld.sl: Call to mmap() failed - TEXT /u07/mdev/lib/libCLEND.sl... (2 Replies)
Discussion started by: scotbuff
2 Replies
Login or Register to Ask a Question
explain_mmap_or_die(3)					     Library Functions Manual					    explain_mmap_or_die(3)

NAME
explain_mmap_or_die - map file or device into memory and report errors SYNOPSIS
#include <libexplain/mmap.h> void *explain_mmap_or_die(void *data, size_t data_size, int prot, int flags, int fildes, off_t offset); void *explain_mmap_on_error(void *data, size_t data_size, int prot, int flags, int fildes, off_t offset); DESCRIPTION
The explain_mmap_or_die function is used to call the mmap(2) system call. On failure an explanation will be printed to stderr, obtained from the explain_mmap(3) function, and then the process terminates by calling exit(EXIT_FAILURE). The explain_mmap_on_error function is used to call the mmap(2) system call. On failure an explanation will be printed to stderr, obtained from the explain_mmap(3) function, but still returns to the caller. data The data, exactly as to be passed to the mmap(2) system call. data_size The data_size, exactly as to be passed to the mmap(2) system call. prot The prot, exactly as to be passed to the mmap(2) system call. flags The flags, exactly as to be passed to the mmap(2) system call. fildes The fildes, exactly as to be passed to the mmap(2) system call. offset The offset, exactly as to be passed to the mmap(2) system call. RETURN VALUE
The explain_mmap_or_die function only returns on success, see mmap(2) for more information. On failure, prints an explanation and exits, it does not return. The explain_mmap_on_error function always returns the value return by the wrapped mmap(2) system call. EXAMPLE
The explain_mmap_or_die function is intended to be used in a fashion similar to the following example: explain_mmap_or_die(data, data_size, prot, flags, fildes, offset); SEE ALSO
mmap(2) map file or device into memory explain_mmap(3) explain mmap(2) errors exit(2) terminate the calling process COPYRIGHT
libexplain version 0.52 Copyright (C) 2010 Peter Miller explain_mmap_or_die(3)