You can use the fstat() function to retrieve information about a shared memory object associated with a file descriptor. The fstat() function retrieves only the following members associated with a shared memory from the structure stat declared in <sys/stat.h> :
For more information about the members of the structure stat , see Open Group
Example:
#include <stdio.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <errno.h>
int main(void)
{
int fd; //File descriptor
int ret;
struct stat buffer; //Stores the data associated with the members of the structure stat
if((fd = shm_open("page", O_RDWR|O_CREAT, 0666)) < 0)
{
printf("Shared memory creation failed with errno %d\n", errno);
}
else
{
printf("Shared memory creation was successful\n");
}
if((ret = fstat(fd,&buffer) < 0)
{
printf("fstat() on shared memory failed with errno %d\n", errno);
}
else
{
printf("fstat() on shared memory succeeded\n");
printf("mode = %d\n", buffer.st_mode);
printf("size = %d\n", buffer.st_size);
}
//Checks whether the shared memory mode is same as that of a regular file
if(S_ISREG(buffer.st_mode))
{
printf("Test passed");
}
else
{
printf("Test failed");
}
close(fd);//closing the file descriptor
if((ret = shm_unlink("page")) < 0)
{
printf("Shared memory unlinking failed with errno %d\n", errno);
}
else
{
printf("Shared memory unlinking was successful\n");
}
return ret;
}
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.