003 File Manager
Current Path:
/usr/src/sys/contrib/openzfs/lib/libuutil
usr
/
src
/
sys
/
contrib
/
openzfs
/
lib
/
libuutil
/
📁
..
📄
Makefile.am
(622 B)
📄
libuutil.abi
(152.57 KB)
📄
libuutil.suppr
(30 B)
📄
uu_alloc.c
(2.39 KB)
📄
uu_avl.c
(13.6 KB)
📄
uu_dprintf.c
(2.83 KB)
📄
uu_ident.c
(2.82 KB)
📄
uu_list.c
(17.68 KB)
📄
uu_misc.c
(6.18 KB)
📄
uu_open.c
(1.57 KB)
📄
uu_pname.c
(3.88 KB)
📄
uu_string.c
(1.41 KB)
Editing: uu_alloc.c
/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. */ #include "libuutil_common.h" #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> void * uu_zalloc(size_t n) { void *p = malloc(n); if (p == NULL) { uu_set_error(UU_ERROR_SYSTEM); return (NULL); } (void) memset(p, 0, n); return (p); } void uu_free(void *p) { free(p); } char * uu_strdup(const char *str) { char *buf = NULL; if (str != NULL) { size_t sz; sz = strlen(str) + 1; buf = uu_zalloc(sz); if (buf != NULL) (void) memcpy(buf, str, sz); } return (buf); } /* * Duplicate up to n bytes of a string. Kind of sort of like * strdup(strlcpy(s, n)). */ char * uu_strndup(const char *s, size_t n) { size_t len; char *p; len = strnlen(s, n); p = uu_zalloc(len + 1); if (p == NULL) return (NULL); if (len > 0) (void) memcpy(p, s, len); p[len] = '\0'; return (p); } /* * Duplicate a block of memory. Combines malloc with memcpy, much as * strdup combines malloc, strlen, and strcpy. */ void * uu_memdup(const void *buf, size_t sz) { void *p; p = uu_zalloc(sz); if (p == NULL) return (NULL); (void) memcpy(p, buf, sz); return (p); } char * uu_msprintf(const char *format, ...) { va_list args; char attic[1]; uint_t M, m; char *b; va_start(args, format); M = vsnprintf(attic, 1, format, args); va_end(args); for (;;) { m = M; if ((b = uu_zalloc(m + 1)) == NULL) return (NULL); va_start(args, format); M = vsnprintf(b, m + 1, format, args); va_end(args); if (M == m) break; /* sizes match */ uu_free(b); } return (b); }
Upload File
Create Folder