---
name: "pvm_setrbuf"
section: "3"
platform: "linux"
package: "pvm-dev"
version: "3.4.2-8"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/pvm_setrbuf"
---

# pvm\_setrbuf(3)

Switches the active receive buffer and saves the previous buffer.

## NAME

pvm\_setrbuf - Switches the active receive buffer and saves the previous buffer.

## SYNOPSIS

```
C	int oldbuf = pvm_setrbuf( int bufid )
Fortran	call pvmfsetrbuf( bufid, oldbuf )
```

## PARAMETERS

- bufid

  **Integer specifying the message buffer identifier** **for the new active receive buffer.**\

- oldbuf

  **Integer returning the message buffer identifier** **for the previous active receive buffer.**

## DESCRIPTION

**The routine** *pvm\_setrbuf* **switches the active receive buffer** **to** *bufid* **and saves the previous active receive buffer** *oldbuf.* **If** *bufid* **is set to 0 then the present active receive buffer** **is saved and no active receive buffer exists.**

**A successful receive automatically creates a new active receive buffer.** **If a previous receive has not been unpacked and needs to be saved** **for later, then the previous bufid can be saved and reset later** **to the active buffer for unpacking.**

**The routine is required when managing multiple message buffers.** **For example switching back and forth between two buffers.** **One buffer could be used to send information to a graphical interface** **while a second buffer could be used send data to other tasks** **in the application.**

## EXAMPLES

```
C:
	rbuf1 = pvm_setrbuf( rbuf2 );

Fortran:
	CALL PVMFSETRBUF( NEWBUF, OLDBUF )
```

## ERRORS

**These error conditions can be returned by** *pvm\_setrbuf*

- PvmBadParam

  **giving an invalid bufid.**

- PvmNoSuchBuf

  **switching to a non-existent message buffer.**

## SEE ALSO

**pvm\_setsbuf(3PVM)**
