---
name: "freebsd::addrinfo_up"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/freebsd::addrinfo_up"
---

# freebsd::addrinfo\_up(3)

std::unique\_ptr specialization for lists of socket addresses

## NAME

**freebsd::addrinfo\_up** – std::unique\_ptr specialization for lists of socket addresses

## LIBRARY

library “libutil++”

## SYNOPSIS

**#include \<libutil++.hh\>**

*using* *addrinfo\_up* *=* *std::unique\_ptr\<addrinfo,* *freeaddrinfo\_deleter\>;*\

## DESCRIPTION

This class is a specialization of *std::unique\_ptr* for socket addresses returned by [getaddrinfo(3)](/getaddrinfo/3.md). When a list of socket addresses managed by an instance of this class is disposed, [freeaddrinfo(3)](/freeaddrinfo/3.md) is invoked to dispose of the list.

## EXAMPLES

```
freebsd::addrinfo_up
resolve_address(const char *address, const char *port)
{
	struct addrinfo hints, *ai;
	int error;
	memset(&hints, 0, sizeof(hints));
	hints.ai_family = AF_UNSPEC;
	hints.ai_socktype = SOCK_STREAM;
	error = getaddrinfo(address, port, &hints, &ai);
	if (error != 0)
		return {};
	return freebsd::addrinfo_up(ai);
}
```

## SEE ALSO

[getaddrinfo(3)](/getaddrinfo/3.md)
