Sponsored Content
Operating Systems Linux shmat() Failure While Using a Large Amount of Shared Memory Post 302170390 by theicarusagenda on Monday 25th of February 2008 01:06:14 PM
Old 02-25-2008
Thanks for the suggestions, grumpf!
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to get amount of memory installed.

Hi! I'm not a UNIX fanatic but I like using it for the Oracle database since it's not stable in the Windows NT environment (what is?). Problem: Is there any command to show me the amount of installed physical-memory in the machine? Is there some other way to show the processes which uses... (4 Replies)
Discussion started by: elgholm
4 Replies

2. UNIX for Dummies Questions & Answers

Amount of RAM (Memory)

How do i check/get the total amount of RAM, on a machine running UNIX? (4 Replies)
Discussion started by: samudimu
4 Replies

3. UNIX for Dummies Questions & Answers

amount of memory in my server

Hi all, is there any command that i can execute to find out the size of the harddisk and RAM on my server? Because i am not the SA, i do not have access to such infomation. (2 Replies)
Discussion started by: new2ss
2 Replies

4. Programming

Read/Write a fairly large amount of data to a file as fast as possible

Hi, I'm trying to figure out the best solution to the following problem, and I'm not yet that much experienced like you. :-) Basically I have to read a fairly large file, composed of "messages" , in order to display all of them through an user interface (made with QT). The messages that... (3 Replies)
Discussion started by: emitrax
3 Replies

5. AIX

amount of memory allocated to large page

We just set up a system to use large pages. I want to know if there is a command to see how much of the memory is being used for large pages. For example if we have a system with 8GB of RAm assigned and it has been set to use 4GB for large pages is there a command to show that 4GB of the *GB is... (1 Reply)
Discussion started by: daveisme
1 Replies

6. Shell Programming and Scripting

How to tar large amount of files?

Hello I have the following files VOICE_hhhh SUBSCR_llll DEL_kkkk Consider that there are 1000 VOICE files+1000 SUBSCR files+1000DEL files When i try to tar these files using tar -cvf backup.tar VOICE* SUBSCR* DEL* i get the error: ksh: /usr/bin/tar: arg list too long How can i... (9 Replies)
Discussion started by: chriss_58
9 Replies

7. SuSE

shmat failed due to Cannot allocate memory

Hi, My program was running for a whole night. after 12 hours i got an error message "Cannot allocate memory" during the shmat commmand. So can you please let me know what could be the reason? is there any solution? thanks in advance. Regards, Mano (5 Replies)
Discussion started by: ManoharanMani
5 Replies

8. Programming

Shared library with acces to shared memory.

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

9. Shell Programming and Scripting

Perl : Large amount of data put into an array

This basic code works. I have a very long list, almost 10000 lines that I am building into the array. Each line has either 2 or 3 fields as shown in the code snippit. The array elements are static (for a few reasons that out of scope of this question) the list has to be "built in". It... (5 Replies)
Discussion started by: sumguy
5 Replies

10. Shell Programming and Scripting

How to make awk command faster for large amount of data?

I have nginx web server logs with all requests that were made and I'm filtering them by date and time. Each line has the following structure: 127.0.0.1 - xyz.com GET 123.ts HTTP/1.1 (200) 0.000 s 3182 CoreMedia/1.0.0.15F79 (iPhone; U; CPU OS 11_4 like Mac OS X; pt_br) These text files are... (21 Replies)
Discussion started by: brenoasrm
21 Replies
shmop(2)							   System Calls 							  shmop(2)

NAME
shmop, shmat, shmdt - shared memory operations SYNOPSIS
#include <sys/types.h> #include <sys/shm.h> void *shmat(int shmid, const void *shmaddr, int shmflg); int shmdt(char *shmaddr); Standard conforming int shmdt(const void *shmaddr); DESCRIPTION
The shmat() function attaches the shared memory segment associated with the shared memory identifier specified by shmid to the data segment of the calling process. The permission required for a shared memory control operation is given as {token}, where token is the type of permission needed. The types of permission are interpreted as follows: 00400 READ by user 00200 WRITE by user 00040 READ by group 00020 WRITE by group 00004 READ by others 00002 WRITE by others See the Shared Memory Operation Permissions section of Intro(2) for more information. For shared memory segments created with the SHM_SHARE_MMU or SHM_PAGEABLE flags, the default protections cannot be changed so as to prevent a single process from affecting other processes sharing the same shared segment. When (shmflg&SHM_SHARE_MMU) is true, virtual memory resources in addition to shared memory itself are shared among processes that use the same shared memory. When (shmflg&SHM_PAGEABLE) is true, virtual memory resources are shared and the dynamic shared memory (DISM) framework is created. The dynamic shared memory can be resized dynamically within the specified size in shmget(2). The DISM shared memory is pageable unless it is locked. The shared memory segment is attached to the data segment of the calling process at the address specified based on one of the following criteria: o If shmaddr is equal to (void *) 0, the segment is attached to the first available address as selected by the system. o If shmaddr is equal to (void *) 0 and ( shmflg&SHM_SHARE_MMU) or (shmflg&SHM_PAGEABLE) is true, then the segment is attached to the first available suitably aligned address. When (shmflg&SHM_SHARE_MMU) or (shmflg&SHM_PAGEABLE) is set, however, the per- mission given by shmget() determines whether the segment is attached for reading or reading and writing. o If shmaddr is not equal to (void *) 0 and (shmflg&SHM_RND) is true, the segment is attached to the address given by (shmaddr- (shmaddr modulus SHMLBA)). o If shmaddr is not equal to (void *) 0 and (shmflg&SHM_RND) is false, the segment is attached to the address given by shmaddr. o The segment is attached for reading if (shmflg&SHM_RDONLY) is true {READ}, otherwise it is attached for reading and writing {READ/WRITE}. The shmdt() function detaches from the calling process's data segment the shared memory segment located at the address specified by shmaddr. If the application is standard-conforming (see standards(5)), the shmaddr argument is of type const void *. Otherwise it is of type char *. Shared memory segments must be explicitly removed after the last reference to them has been removed. RETURN VALUES
Upon successful completion, shmat() returns the data segment start address of the attached shared memory segment; shmdt() returns 0. Other- wise, -1 is returned, the shared memory segment is not attached, and errno is set to indicate the error. ERRORS
The shmat() function will fail if: EACCES Operation permission is denied to the calling process (see Intro(2)). EINVAL The shmid argument is not a valid shared memory identifier. The shmaddr argument is not equal to 0, and the value of (shmaddr- (shmaddr modulus SHMLBA)) is an illegal address. The shmaddr argument is not equal to 0, is an illegal address, and (shmflg&SHM_RND) is false. The shmaddr argument is not equal to 0, is not properly aligned, and (shmfg&SHM_SHARE_MMU) is true. SHM_SHARE_MMU is not supported in certain architectures. Both (shmflg&SHM_SHARE_MMU) and (shmflg&SHM_PAGEABLE) are true. (shmflg&SHM_SHARE_MMU) is true and the shared memory segment specified by shmid() had previously been attached by a call to shmat() in which (shmflg&SHM_PAGEABLE) was true. (shmflg&SHM_PAGEABLE) is true and the shared memory segment specified by shmid() had previously been attached by a call to shmat() in which (shmflg&SHM_SHARE_MMU) was true. EMFILE The number of shared memory segments attached to the calling process would exceed the system-imposed limit. ENOMEM The available data space is not large enough to accommodate the shared memory segment. The shmdt() function will fail if: EINVAL The shmaddr argument is not the data segment start address of a shared memory segment. ENOMEM (shmflg&SHM_SHARE_MMU) is true and attaching to the shared memory segment would exceed a limit or resource control on locked mem- ory. WARNINGS
Using a fixed value for the shmaddr argument can adversely affect performance on certain platforms due to D-cache aliasing. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ |MT-Level |Async-Signal-Safe | +-----------------------------+-----------------------------+ |Standard |See standards(5). | +-----------------------------+-----------------------------+ SEE ALSO
Intro(2), exec(2), exit(2), fork(2), shmctl(2), shmget(2), attributes(5), standards(5) SunOS 5.11 10 Mar 2008 shmop(2)
All times are GMT -4. The time now is 02:28 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy