Problem in allocating shared memory size more then 672
Hi there,
I am using Redhat Enterprise Linux 3. I am using it on 512 MB RAM . For some application I want shared memory up to 2.5 GB. I was just trying to get shared memory through simple program that uses shmget system call. for memory allocation. I changed the entry of shmmax with command echo "1073741824" >/proc/sys/kernel/shmmax
Then try to execute a program which allocate shared memory
sharedmemory.c as follows --
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <errno.h>
#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
int main(){
key_t key = 1311;
int m_shmid = shmget(key,1048576*1024,IPC_CREAT|0666);
/*trying to allocate memory size of 1GB */
printf("m_shmid value is %d", m_shmid);
}
/*some header file are extra pleasse do not mind*/
The shmid value comes out to be -1 surprisingly method works perfectly when I try to allocate the memory up to 688128*1024 bytes (That is 672 MB) I donot reason please tell me any thing I need to do make it work
I am executing all commands on root permission
|