1*ae771770SStanislav Sedov.\" Copyright (c) 2001, 2003 Kungliga Tekniska Högskolan 2c19800e8SDoug Rabson.\" (Royal Institute of Technology, Stockholm, Sweden). 3c19800e8SDoug Rabson.\" All rights reserved. 4c19800e8SDoug Rabson.\" 5c19800e8SDoug Rabson.\" Redistribution and use in source and binary forms, with or without 6c19800e8SDoug Rabson.\" modification, are permitted provided that the following conditions 7c19800e8SDoug Rabson.\" are met: 8c19800e8SDoug Rabson.\" 9c19800e8SDoug Rabson.\" 1. Redistributions of source code must retain the above copyright 10c19800e8SDoug Rabson.\" notice, this list of conditions and the following disclaimer. 11c19800e8SDoug Rabson.\" 12c19800e8SDoug Rabson.\" 2. Redistributions in binary form must reproduce the above copyright 13c19800e8SDoug Rabson.\" notice, this list of conditions and the following disclaimer in the 14c19800e8SDoug Rabson.\" documentation and/or other materials provided with the distribution. 15c19800e8SDoug Rabson.\" 16c19800e8SDoug Rabson.\" 3. Neither the name of the Institute nor the names of its contributors 17c19800e8SDoug Rabson.\" may be used to endorse or promote products derived from this software 18c19800e8SDoug Rabson.\" without specific prior written permission. 19c19800e8SDoug Rabson.\" 20c19800e8SDoug Rabson.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 21c19800e8SDoug Rabson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22c19800e8SDoug Rabson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23c19800e8SDoug Rabson.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 24c19800e8SDoug Rabson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25c19800e8SDoug Rabson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26c19800e8SDoug Rabson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27c19800e8SDoug Rabson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28c19800e8SDoug Rabson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29c19800e8SDoug Rabson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30c19800e8SDoug Rabson.\" SUCH DAMAGE. 31*ae771770SStanislav Sedov.\" $Id$ 32c19800e8SDoug Rabson.\" 33c19800e8SDoug Rabson.Dd August 14, 2003 34c19800e8SDoug Rabson.Dt ECALLOC 3 35c19800e8SDoug Rabson.Os HEIMDAL 36c19800e8SDoug Rabson.Sh NAME 37c19800e8SDoug Rabson.Nm ecalloc , 38c19800e8SDoug Rabson.Nm emalloc , 39c19800e8SDoug Rabson.Nm eread , 40c19800e8SDoug Rabson.Nm erealloc , 41c19800e8SDoug Rabson.Nm esetenv , 42c19800e8SDoug Rabson.Nm estrdup , 43c19800e8SDoug Rabson.Nm ewrite 44c19800e8SDoug Rabson.Nd exit-on-failure wrapper functions 45c19800e8SDoug Rabson.Sh LIBRARY 46c19800e8SDoug RabsonThe roken library (libroken, -lroken) 47c19800e8SDoug Rabson.Sh SYNOPSIS 48c19800e8SDoug Rabson.Fd #include <roken.h> 49c19800e8SDoug Rabson.Ft "void *" 50c19800e8SDoug Rabson.Fn ecalloc "size_t number" "size_t size" 51c19800e8SDoug Rabson.Ft "void *" 52c19800e8SDoug Rabson.Fn emalloc "size_t sz" 53c19800e8SDoug Rabson.Ft ssize_t 54c19800e8SDoug Rabson.Fn eread "int fd" "void *buf" "size_t nbytes" 55c19800e8SDoug Rabson.Ft "void *" 56c19800e8SDoug Rabson.Fn erealloc "void *ptr" "size_t sz" 57c19800e8SDoug Rabson.Ft void 58c19800e8SDoug Rabson.Fn esetenv "const char *var" "const char *val" "int rewrite" 59c19800e8SDoug Rabson.Ft "char *" 60c19800e8SDoug Rabson.Fn estrdup "const char *str" 61c19800e8SDoug Rabson.Ft ssize_t 62c19800e8SDoug Rabson.Fn ewrite "int fd" "const void *buf" "size_t nbytes" 63c19800e8SDoug Rabson.Sh DESCRIPTION 64c19800e8SDoug RabsonThese functions do the same as the ones without the 65c19800e8SDoug Rabson.Dq e 66c19800e8SDoug Rabsonprefix, but if there is an error they will print a message with 67c19800e8SDoug Rabson.Xr errx 3 , 68c19800e8SDoug Rabsonand exit. For 69c19800e8SDoug Rabson.Nm eread 70c19800e8SDoug Rabsonand 71c19800e8SDoug Rabson.Nm ewrite 72c19800e8SDoug Rabsonthis is also true for partial data. 73c19800e8SDoug Rabson.Pp 74c19800e8SDoug RabsonThis is useful in applications when there is no need for a more 75c19800e8SDoug Rabsonadvanced failure mode. 76c19800e8SDoug Rabson.Sh SEE ALSO 77c19800e8SDoug Rabson.Xr read 2 , 78c19800e8SDoug Rabson.Xr write 2 , 79c19800e8SDoug Rabson.Xr calloc 3 , 80c19800e8SDoug Rabson.Xr errx 3 , 81c19800e8SDoug Rabson.Xr malloc 3 , 82c19800e8SDoug Rabson.Xr realloc 3 , 83c19800e8SDoug Rabson.Xr setenv 3 , 84c19800e8SDoug Rabson.Xr strdup 3 85