1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /*                                                                           */
3 /*                  This file is part of the program and library             */
4 /*         SCIP --- Solving Constraint Integer Programs                      */
5 /*                                                                           */
6 /*    Copyright (C) 2002-2021 Konrad-Zuse-Zentrum                            */
7 /*                            fuer Informationstechnik Berlin                */
8 /*                                                                           */
9 /*  SCIP is distributed under the terms of the ZIB Academic License.         */
10 /*                                                                           */
11 /*  You should have received a copy of the ZIB Academic License              */
12 /*  along with SCIP; see the file COPYING. If not visit scipopt.org.         */
13 /*                                                                           */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file   pub_fileio.h
17  * @ingroup PUBLICCOREAPI
18  * @brief  wrapper functions to map file i/o to standard or zlib file i/o
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PUB_FILEIO_H__
25 #define __SCIP_PUB_FILEIO_H__
26 
27 #include <stddef.h>
28 #include "scip/def.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 typedef struct SCIP_File SCIP_FILE;          /**< file data structure */
35 
36 SCIP_EXPORT SCIP_FILE* SCIPfopen(const char *path, const char *mode);
37 SCIP_EXPORT SCIP_FILE* SCIPfdopen(int fildes, const char *mode);
38 SCIP_EXPORT size_t SCIPfread(void *ptr, size_t size, size_t nmemb, SCIP_FILE *stream);
39 SCIP_EXPORT size_t SCIPfwrite(const void *ptr, size_t size, size_t nmemb, SCIP_FILE *stream);
40 #ifdef __GNUC__
41 __attribute__((format(printf, 2, 3)))
42 #endif
43 SCIP_EXPORT int SCIPfprintf(SCIP_FILE *stream, const char *format, ...);
44 SCIP_EXPORT int SCIPfputc(int c, SCIP_FILE *stream);
45 SCIP_EXPORT int SCIPfputs(const char *s, SCIP_FILE *stream);
46 SCIP_EXPORT int SCIPfgetc(SCIP_FILE *stream);
47 SCIP_EXPORT char* SCIPfgets(char *s, int size, SCIP_FILE *stream);
48 SCIP_EXPORT int SCIPfflush(SCIP_FILE *stream);
49 SCIP_EXPORT int SCIPfseek(SCIP_FILE *stream, long offset, int whence);
50 SCIP_EXPORT void SCIPrewind(SCIP_FILE *stream);
51 SCIP_EXPORT long SCIPftell(SCIP_FILE *stream);
52 SCIP_EXPORT int SCIPfeof(SCIP_FILE *stream);
53 SCIP_EXPORT int SCIPfclose(SCIP_FILE *fp);
54 
55 #ifdef __cplusplus
56 }
57 #endif
58 
59 #endif
60