Provided by: libowfat-dev_0.30-2ubuntu1_amd64
fmt_ip6if - write a formatted ASCII representation of an IPv6 number
#include <ip6.h> unsigned int fmt_ip6if(char *dest,const char ip,uint32 scope_id);
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.
#include <ip6.h> char buf[IP6_FMT]; char ip; scope_id sid; buf[fmt_ip6if(buf,ip,sid)]=0;