Home | History | Annotate | Download | only in lib
      1 /* xmemdup0.h -- copy a block of arbitrary bytes, plus a trailing NUL
      2 
      3    Copyright (C) 2008-2012 Free Software Foundation, Inc.
      4 
      5    This program is free software: you can redistribute it and/or modify
      6    it under the terms of the GNU General Public License as published by
      7    the Free Software Foundation; either version 3 of the License, or
      8    (at your option) any later version.
      9 
     10    This program is distributed in the hope that it will be useful,
     11    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13    GNU General Public License for more details.
     14 
     15    You should have received a copy of the GNU General Public License
     16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     17 
     18 #ifndef XMEMDUP_H_
     19 # define XMEMDUP_H_
     20 
     21 # include <stddef.h>
     22 
     23 
     24 # ifdef __cplusplus
     25 extern "C" {
     26 # endif
     27 
     28 /* This function is always triggered when memory is exhausted.
     29    It must be defined by the application, either explicitly
     30    or by using gnulib's xalloc-die module.  This is the
     31    function to call when one wants the program to die because of a
     32    memory allocation failure.  */
     33 extern _Noreturn void xalloc_die (void);
     34 
     35 char *xmemdup0 (void const *p, size_t s);
     36 
     37 # ifdef __cplusplus
     38 }
     39 # endif
     40 
     41 #endif /* !XMEMDUP0_H_ */
     42