Merge branch 'master' of git@git.gromacs.org:gromacs
[gromacs/adressmacs.git] / include / binio.h
bloba3b1ec9d353041ab377f7ce7ed9dece1dc85e594
1 /*
2 *
3 * This source code is part of
4 *
5 * G R O M A C S
6 *
7 * GROningen MAchine for Chemical Simulations
8 *
9 * VERSION 3.2.0
10 * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
11 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
12 * Copyright (c) 2001-2004, The GROMACS development team,
13 * check out http://www.gromacs.org for more information.
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
20 * If you want to redistribute modifications, please consider that
21 * scientific software is very special. Version control is crucial -
22 * bugs must be traceable. We will be happy to consider code for
23 * inclusion in the official distribution, but derived work must not
24 * be called official GROMACS. Details are found in the README & COPYING
25 * files - if they are missing, get the official version at www.gromacs.org.
27 * To help us fund GROMACS development, we humbly ask that you cite
28 * the papers on the package - you can find them in the top README file.
30 * For more info, check our website at http://www.gromacs.org
32 * And Hey:
33 * Gromacs Runs On Most of All Computer Systems
36 #ifndef _binio_h
37 #define _binio_h
39 #ifdef HAVE_CONFIG_H
40 #include <config.h>
41 #endif
43 #ifdef HAVE_IDENT
44 #ident "@(#) binio.h 1.5 11/23/92"
45 #endif /* HAVE_IDENT */
47 #include <stdio.h>
48 #include "sysstuff.h"
49 #include "gmx_fatal.h"
52 * Module to binary write and read.
54 * @
55 * @@@ @@ @
56 * @ @
57 * @ @ @ @@@ @@ @@@ @@ @@ @@@ @@ @@ @@ @@
58 * @ @ @ @ @ @@ @ @@ @ @ @@ @ @ @@
59 * @ @ @ @ @ @ @ @ @ @ @ @ @
60 * @@ @@ @@@@@ @ @ @ @ @ @ @ @
61 * @ @ @ @ @ @ @ @ @ @ @ @
62 * @ @ @ @@ @ @ @ @ @ @ @ @@
63 * @ @ @@@ @@ @@@@ @@@ @@@ @@@@@ @@@ @@@ @@ @
64 * @
65 * @
66 * @@@
68 * Use this module only to write and read simple types or array(s)
69 * of simple types. STRUCTURES ARE DEFINITELY NOT ALLOWED.
72 #ifdef __cplusplus
73 extern "C" {
74 #endif
76 #define nblockwrite(fp,nelem,data) \
77 _blockwrite(fp,nelem,sizeof(*data),(data),#data,__FILE__,__LINE__)
78 #define blockwrite(fp,data) \
79 _blockwrite(fp,1,sizeof(data),&(data),#data,__FILE__,__LINE__)
80 #define cblockwrite(fp,ptr,nchars) \
81 _blockwrite(fp,1,(nchars),(ptr),#ptr,__FILE__,__LINE__)
82 #define nblockread(fp,nelem,data) \
83 _blockread(fp,nelem,sizeof(*data),(data),#data,__FILE__,__LINE__)
84 #define blockread(fp,data) \
85 _blockread(fp,1,sizeof(data),&(data),#data,__FILE__,__LINE__)
86 #define cblockread(fp,ptr,nchars) \
87 _blockread(fp,1,(nchars),(ptr),#ptr,__FILE__,__LINE__)
90 extern void _blockwrite(FILE *fp,int nelem,int size,void *data,
91 char *what,char *file,int line);
93 extern void _blockread(FILE *fp,int nelem,int size,void *data,
94 char *what,char *file,int line);
96 #ifdef __cplusplus
98 #endif
100 #endif /* _binio_h */