---
name: "fmt_ip6if"
section: "3"
platform: "linux"
package: "libowfat-dev"
version: "0.32-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/fmt_ip6if"
---

# fmt\_ip6if(3)

write a formatted ASCII representation of an IPv6 number

## NAME

fmt\_ip6if - write a formatted ASCII representation of an IPv6 number

## SYNTAX

**#include \<libowfat/ip6.h\>**

unsigned int **fmt\_ip6if**(char \**dest*,const char *ip*\[16\],uint32 *scope\_id*);

## DESCRIPTION

fmt\_ip6if formats an IPv6 number in ASCII representation from *ip* and writes the result into *dest*. It returns the number of bytes written.

fmt\_ip6if will apply "::" compression to the output.

If *ip* is an IPv4-mapped IPv6 address, fmt\_ip6if will output the last 4 bytes as IPv4 number in dotted-decimal notation.

If *dest* equals FMT\_LEN (i.e. is zero), fmt\_ip6if returns the number of bytes it would have written.

fmt\_ip6 does not append \\0.

ip6.h defines the integer IP6\_FMT to be big enough to contain every possible fmt\_ip6 output plus \\0.  However, for fmt\_ip6if you need to add 1 for the '%' and IF\_NAMESIZE from \<net/if.h\> for the interface name.

## EXAMPLE

\#include \<libowfat/ip6.h\>

  char buf\[IP6\_FMT\];\
   char ip\[16\];\
   scope\_id sid;\
   buf\[fmt\_ip6if(buf,ip,sid)\]=0;

## SEE ALSO

[scan\_ip6(3)](/scan_ip6/3.md), [fmt\_ip4(3)](/fmt_ip4/3.md)
