---
name: "ACE_Shared_Memory"
section: "3"
platform: "linux"
package: "libace-doc"
version: "5.0.7-4"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/ACE_Shared_Memory"
---

# ACE\_Shared\_Memory(3)

This base class adapts both System V shared memory and "BSD" mmap to a common API.

## NAME

ACE\_Shared\_Memory -  This base class adapts both System V shared memory and "BSD" mmap to a common API.

## SYNOPSIS

```
#include <ace/Shared_Memory.h>
class ACE_Shared_Memory
{
  public:
    virtual ~ACE_Shared_Memory (void);
    virtual int close (void) = 0;
    virtual int remove (void) = 0;
    virtual void *malloc (size_t = 0) = 0;
    virtual int free (void *p) = 0;
    virtual int get_segment_size (void) const = 0;
    virtual ACE_HANDLE get_id (void) const = 0;
};
```

## DESCRIPTION

This is a very simple-minded wrapper, i.e., it really is only useful for allocating large contiguous chunks of shared memory.  For a much more sophisticated version, please check out the ACE\_Malloc class.

## Note that all the following methods are pure virtual.

```
virtual int close (void) = 0;
```

```
virtual int remove (void) = 0;
```

```
virtual void *malloc (size_t = 0) = 0;
```

```
virtual int free (void *p) = 0;
```

```
virtual int get_segment_size (void) const = 0;
```

```
virtual ACE_HANDLE get_id (void) const = 0;
```

## AUTHOR

Doug Schmidt

## LIBRARY

ace
