.\" Copyright 1999 Andreas Dilger (adilger@enel.ucalgary.ca)
.\"
.\" %Begin-Header%
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, and the entire permission notice in its entirety,
.\"    including the disclaimer of warranties.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote
.\"    products derived from this software without specific prior
.\"    written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
.\" WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
.\" WHICH ARE HEREBY DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE
.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
.\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
.\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
.\" USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
.\" DAMAGE.
.\" %End-Header%
.\"
.\" Created  Wed Mar 10 17:42:12 1999, Andreas Dilger
.TH UUID_UNPARSE 3 "May 2009" "util-linux-ng" "Libuuid API"
.SH NAME
uuid_unparse \- convert an UUID from binary representation to a string
.SH SYNOPSIS
.nf
.B #include <uuid/uuid.h>
.sp
.BI "void uuid_unparse(uuid_t " uu ", char *" out );
.BI "void uuid_unparse_upper(uuid_t " uu ", char *" out );
.BI "void uuid_unparse_lower(uuid_t " uu ", char *" out );
.fi
.SH DESCRIPTION
The
.B uuid_unparse
function converts the supplied UUID
.I uu
from the binary representation into a 36\-byte string (plus tailing '\\0')
of the form 1b4e28ba\-2fa1\-11d2\-883f\-0016d3cca427 and stores this
value in the character string pointed to by
.IR out .
The case of the hex digits returned by
.B uuid_unparse
may be upper or lower case, and is
dependent on the system-dependent local default.
.PP
If the case of the
hex digits is important then the functions
.B uuid_unparse_upper
and
.B uuid_unparse_lower
may be used.
.SH "CONFORMING TO"
OSF DCE 1.1
.SH AUTHOR
Theodore Y. Ts'o
.SH AVAILABILITY
.B libuuid
is part of the util-linux-ng package since version 2.15.1 and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
.SH "SEE ALSO"
.BR uuid (3),
.BR uuid_clear (3),
.BR uuid_compare (3),
.BR uuid_copy (3),
.BR uuid_generate (3),
.BR uuid_time (3),
.BR uuid_is_null (3),
.BR uuid_parse (3)
