---
name: "pvm_freebuf"
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_freebuf"
---

# pvm\_freebuf(3)

Disposes of a message buffer.

## NAME

pvm\_freebuf - Disposes of a message buffer.

## SYNOPSIS

```
C	int info = pvm_freebuf( int bufid )
Fortran	call pvmffreebuf( bufid, info )
```

## PARAMETERS

- bufid

  **Integer message buffer identifier.**\

- info

  **Integer status code returned by the routine.** **Values less than zero indicate an error.**

## DESCRIPTION

**The routine** *pvm\_freebuf* **frees the memory associated** **with the message buffer identified by** *bufid.* **Message buffers are created by pvm\_mkbuf, pvm\_initsend, and pvm\_recv.** **If pvm\_freebuf is successful,** *info* **will be 0.** **If some error occurs then** *info* **will be \< 0.**

**pvm\_freebuf can be called for a send buffer created by pvm\_mkbuf** **after the message has been sent and is no longer needed.**

**Receive buffers typically do not have to be freed unless** **they have been saved in the course of using multiple buffers.** **But pvm\_freebuf can be used to destroy receive buffers as well.** **So messages that arrive but are no longer needed can be destroyed** **so they will not consume buffer space.**

**Typically multiple send and receive buffers are not needed** **and the user can simply use the pvm\_initsend routine to** **reset the default send buffer.**

**There are several cases where multiple buffers are useful.** **One example where multiple message buffers are needed involves** **libraries or graphical interfaces that use PVM and** **interact with a running PVM application but do not want** **to interfere with the application's own communication.**

**When multiple buffers are used they generally are made and** **freed for each message that is packed.** **In fact, pvm\_initsend simply does a pvm\_freebuf followed** **by a pvm\_mkbuf for the default buffer.**

## EXAMPLES

```
C:
	bufid = pvm_mkbuf( PvmDataDefault );
	      :
	info = pvm_freebuf( bufid );

Fortran:
	CALL PVMFMKBUF( PVMDEFAULT, BUFID )
	      :
	CALL PVMFFREEBUF( BUFID, INFO )
```

## ERRORS

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

- PvmBadParam

  **giving an invalid argument value.**

- PvmNoSuchBuf

  **giving an invalid bufid value.**

## SEE ALSO

**pvm\_mkbuf(3PVM),** **pvm\_initsend(3PVM),** **pvm\_recv(3PVM)**
