---
name: "ACE_Pipe"
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_Pipe"
---

# ACE\_Pipe(3)

Provides a bidirectional "pipe" abstraction that is portable to Windows NT, SVR4 UNIX, and BSD UNIX.

## NAME

ACE\_Pipe -  Provides a bidirectional "pipe" abstraction that is portable to Windows NT, SVR4 UNIX, and BSD UNIX.

## SYNOPSIS

```
#include <ace/Pipe.h>
class ACE_Pipe
{
  public:
    ACE_Pipe (void);
    ACE_Pipe (ACE_HANDLE handles[2]);
    ACE_Pipe (ACE_HANDLE read, ACE_HANDLE write);
    ~ACE_Pipe (void);
    int open (ACE_HANDLE handles[2]);
    int open (int buffer_size = ACE_DEFAULT_MAX_SOCKET_BUFSIZ);
    int close (void);
    ACE_HANDLE read_handle (void) const;
    ACE_HANDLE write_handle (void) const;
    void dump (void) const;
  private:
    ACE_HANDLE handles_[2];
};
```

## DESCRIPTION

Uses "name" for lookup in the ACE service repository. Obtains the object and returns it as the appropriate type.

## Initialization and termination.

```
ACE_Pipe (void);
```

Default constructor (does nothing...).

```
ACE_Pipe (ACE_HANDLE handles[2]);
```

Open the pipe and initialize the handles.

```
ACE_Pipe (ACE_HANDLE read, ACE_HANDLE write);
```

Initialize the ACE\_Pipe from the read and write handles.

```
~ACE_Pipe (void);
```

Default dtor.  It doesn't close the handles for you.

```
int open (ACE_HANDLE handles[2]);
```

Open the pipe and initialize the handles.

```
int open (int buffer_size = ACE_DEFAULT_MAX_SOCKET_BUFSIZ);
```

Open the pipe, setting the buffer size to the maximum.

```
int close (void);
```

Close down the pipe HANDLEs;

## Accessors.

```
ACE_HANDLE read_handle (void) const;
```

This is the "read" side of the pipe.  Note, however, that processes can also write to this handle as well since pipes are bi-directional.

```
ACE_HANDLE write_handle (void) const;
```

This is the "write" side of the pipe.  Note, however, that processes can also read to this handle as well since pipes are bi-directional.

```
void dump (void) const;
```

Dump the state of the object.

## AUTHOR

Doug Schmidt

## LIBRARY

ace
