sun solaris에 있는 C header파일
/usr/include/uuid/uuid.h
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
/*
* Copyright 2002 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _UUID_H
#define _UUID_H
#pragma ident "@(#)uuid.h 1.2 02/07/03 SMI"
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
#include <sys/uuid.h>
extern void uuid_generate(uuid_t);
extern void uuid_generate_random(uuid_t);
extern void uuid_generate_time(uuid_t);
extern void uuid_copy(uuid_t, uuid_t);
extern void uuid_clear(uuid_t);
extern void uuid_unparse(uuid_t, char *);
extern int uuid_compare(uuid_t, uuid_t);
extern int uuid_is_null(uuid_t);
extern int uuid_parse(char *, uuid_t);
extern time_t uuid_time(uuid_t, struct timeval *);
#ifdef __cplusplus
}
#endif
#endif /* _UUID_H */
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
/usr/include/sys/uuid.h
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_UUID_H
#define _SYS_UUID_H
#pragma ident "@(#)uuid.h 1.4 07/01/17 SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* The copyright in this file is taken from the original Leach
* & Salz UUID specification, from which this implementation
* is derived.
*/
/*
* Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
* Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
* Digital Equipment Corporation, Maynard, Mass. Copyright (c) 1998
* Microsoft. To anyone who acknowledges that this file is provided
* "AS IS" without any express or implied warranty: permission to use,
* copy, modify, and distribute this file for any purpose is hereby
* granted without fee, provided that the above copyright notices and
* this notice appears in all source code copies, and that none of the
* names of Open Software Foundation, Inc., Hewlett-Packard Company,
* or Digital Equipment Corporation be used in advertising or
* publicity pertaining to distribution of the software without
* specific, written prior permission. Neither Open Software
* Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
* Equipment Corporation makes any representations about the
* suitability of this software for any purpose.
*/
#include <sys/types.h>
#include <sys/byteorder.h>
typedef struct {
uint8_t nodeID[6];
} uuid_node_t;
/*
* The uuid type used throughout when referencing uuids themselves
*/
struct uuid {
uint32_t time_low;
uint16_t time_mid;
uint16_t time_hi_and_version;
uint8_t clock_seq_hi_and_reserved;
uint8_t clock_seq_low;
uint8_t node_addr[6];
};
#define UUID_LEN 16
#define UUID_PRINTABLE_STRING_LENGTH 37
typedef uchar_t uuid_t[UUID_LEN];
/*
* Convert a uuid to/from little-endian format
*/
#define UUID_LE_CONVERT(dest, src) \
{ \
(dest) = (src); \
(dest).time_low = LE_32((dest).time_low); \
(dest).time_mid = LE_16((dest).time_mid); \
(dest).time_hi_and_version = LE_16((dest).time_hi_and_version); \
}
#ifdef __cplusplus
}
#endif
#endif /* _SYS_UUID_H */
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
샘플 테스트
a.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/uuid.h>
int main(int argc, char *argv[])
{
uuid_t u;
char uuid_str[37];
uuid_generate(&u);
uuid_unparse(u, uuid_str);
fprintf(stdout, "uuid_str[%s]\n", uuid_str);
};
gcc a.c -luuid
uuid_str[1729cbe9-93e7-6b23-b621-e40164dd3f19]