You read from and write to it the exact same way you read from and write to any other block of memory. As such, how you use it really depends on how you want to use it, which you haven't actually said.
You don't have to write ASCII text to it. That makes it a whole lot harder in fact since you have to scan through and hunt for things instead of doing random access. It may be simplest to use it as an array of native data types, which can be anything you want, including structures. You can build most other data structures out of arrays anyway.
Last edited by Corona688; 02-20-2010 at 01:12 PM..
I am running HP-UX B.11.11.
I'm increasing a parameter for a database engine so that it uses more memory to buffer the disk drive (to speed up performance). I have over 5GB of memory not being used.
But when I try to start the DB with the increased buffer parameter I get told.
"Not... (1 Reply)
hi,
this is the problem: i want to swap a linked list between 4 processes (unrelated), is there any way i can do that just by sending a pointer to a structure?
//example
typedef struct node
{
int x;
char c;
struct node *next;
} node;
or i should send the items ( x,c ) by... (9 Replies)
I need to create a shared library to access an in memory DB. The DB is not huge, but big enough to make it cumbersome to carry around in every single process using the shared library. Luckily, it is pretty static information, so I don't need to worry much about synchronizing the data between... (12 Replies)
I am looking for C program source code. Could you please help me in finding the source code required mentioned below.
program to create multiple threads (one master thread and rest worker threads) and using the threads write into and read from shared memory
Restrictions:
Only one thread... (2 Replies)
I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability.
Obviously, I'll have to worry about mutual exclusion. (0 Replies)
I have created a shared memory segment (which size is 64 bytes) using shmget, shmat e.t.c and i want to divide it into 2 areas. One area for input data and one area for output? How can i do that?
Furthermore, When i have to write my input data into the shared memory segment i want to write... (3 Replies)
I created a shared memory and attached it. I also created the appropriate semaphores to sync. my read/write operations. However I do not know how am I supposed to do so. Anyone has got any ideas? I want to write int the form of 1234:23:444:... where each number between : means something to the... (0 Replies)
Hi,
We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Hi everyone. I asked once here and it went well, so I'm very happy with this community.
I have a new question to ask. I would like to read&write specify memory of a process which is not the process I'm doing it from, nor a child nor a parent.
So, I want to do a program similar to Cheat... (3 Replies)
Hello.
I am new to this forum and I would like to ask for advice about low level POSIX programming.
I have to implement a POSIX compliant C shared library.
A file will have some variables and the shared library will have some functions which need those variables.
There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies
LEARN ABOUT X11R4
mmap2
MMAP2(2) Linux Programmer's Manual MMAP2(2)NAME
mmap2 - map files or devices into memory
SYNOPSIS
#include <sys/mman.h>
void *mmap2(void *addr, size_t length, int prot,
int flags, int fd, off_t pgoffset);
DESCRIPTION
This is probably not the system call that you are interested in; instead, see mmap(2), which describes the glibc wrapper function that
invokes this system call.
The mmap2() system call provides the same interface as mmap(2), except that the final argument specifies the offset into the file in
4096-byte units (instead of bytes, as is done by mmap(2)). This enables applications that use a 32-bit off_t to map large files (up to
2^44 bytes).
RETURN VALUE
On success, mmap2() returns a pointer to the mapped area. On error, -1 is returned and errno is set appropriately.
ERRORS
EFAULT Problem with getting the data from user space.
EINVAL (Various platforms where the page size is not 4096 bytes.) offset * 4096 is not a multiple of the system page size.
mmap2() can also return any of the errors described in mmap(2).
VERSIONS
mmap2() is available since Linux 2.3.31.
CONFORMING TO
This system call is Linux-specific.
NOTES
On architectures where this system call is present, the glibc mmap() wrapper function invokes this system call rather than the mmap(2) sys-
tem call.
This system call does not exist on x86-64.
On ia64, the unit for offset is actually the system page size, rather than 4096 bytes.
SEE ALSO getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the
latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
Linux 2017-09-15 MMAP2(2)