1 /* 2 3 silcfileutil.h 4 5 Author: Pekka Riikonen <priikone@silcnet.org> 6 7 Copyright (C) 1997 - 2005 Pekka Riikonen 8 9 The contents of this file are subject to one of the Licenses specified 10 in the COPYING file; You may not use this file except in compliance 11 with the License. 12 13 The software distributed under the License is distributed on an "AS IS" 14 basis, in the hope that it will be useful, but WITHOUT WARRANTY OF ANY 15 KIND, either expressed or implied. See the COPYING file for more 16 information. 17 18 */ 19 20 /****h* silcutil/SILC File Util Interface 21 * 22 * DESCRIPTION 23 * 24 * The SILC File Util Interface is a small set of functions that provides a 25 * portable access method to the filesystem. 26 * 27 ***/ 28 29 #ifndef SILCFILEUTIL_H 30 #define SILCFILEUTIL_H 31 32 /* Prototypes */ 33 34 /****f* silcutil/SilcFileUtilAPI/silc_file_open 35 * 36 * SYNOPSIS 37 * 38 * int silc_file_open(const char *filename, int flags); 39 * 40 * DESCRIPTION 41 * 42 * Opens a file indicated by the filename `filename' with flags indicated 43 * by `flags'. The opening permission defaults to 0600. The `flags' 44 * are defined in open(2). 45 * 46 ***/ 47 int silc_file_open(const char *filename, int flags); 48 49 /****f* silcutil/SilcFileUtilAPI/silc_file_open_mode 50 * 51 * SYNOPSIS 52 * 53 * int silc_file_open_mode(const char *filename, int flags, int mode); 54 * 55 * DESCRIPTION 56 * 57 * Opens a file indicated by the filename `filename' with flags indicated 58 * by `flags'. The argument `mode' specifies the permissions to use in 59 * case a new file is created. The `flags' are defined in open(2). 60 * 61 ***/ 62 int silc_file_open_mode(const char *filename, int flags, int mode); 63 64 /****f* silcutil/SilcFileUtilAPI/silc_file_read 65 * 66 * SYNOPSIS 67 * 68 * int silc_file_read(int fd, unsigned char *buf, SilcUInt32 buf_len); 69 * 70 * DESCRIPTION 71 * 72 * Reads data from file descriptor `fd' to `buf'. 73 * 74 ***/ 75 int silc_file_read(int fd, unsigned char *buf, SilcUInt32 buf_len); 76 77 /****f* silcutil/SilcFileUtilAPI/silc_file_write 78 * 79 * SYNOPSIS 80 * 81 * int silc_file_write(int fd, const char *buffer, SilcUInt32 len); 82 * 83 * DESCRIPTION 84 * 85 * Writes `buffer' of length of `len' to file descriptor `fd'. 86 * 87 ***/ 88 int silc_file_write(int fd, const char *buffer, SilcUInt32 len); 89 90 /****f* silcutil/SilcFileUtilAPI/silc_file_close 91 * 92 * SYNOPSIS 93 * 94 * int silc_file_close(int fd); 95 * 96 * DESCRIPTION 97 * 98 * Closes file descriptor previously opened with silc_file_open(). 99 * 100 ***/ 101 int silc_file_close(int fd); 102 103 /****f* silcutil/SilcFileUtilAPI/silc_file_set_nonblock 104 * 105 * SYNOPSIS 106 * 107 * int silc_file_set_nonblock(int fd); 108 * 109 * DESCRIPTION 110 * 111 * Sets the file descriptor to non-blocking mode. 112 * 113 ***/ 114 int silc_file_set_nonblock(int fd); 115 116 /****f* silcutil/SilcFileUtilAPI/silc_file_readfile 117 * 118 * SYNOPSIS 119 * 120 * char *silc_file_readfile(const char *filename, SilcUInt32 *return_len); 121 * 122 * DESCRIPTION 123 * 124 * Reads the content of `filename' to a buffer. The allocated buffer is 125 * returned. This does not NULL terminate the buffer but EOF terminate 126 * it. The caller must replace the EOF with NULL if the buffer must be 127 * NULL terminated. 128 * 129 * If the `return_len' pointer is not NULL, it's filled with the length of 130 * the file. 131 * 132 ***/ 133 char *silc_file_readfile(const char *filename, SilcUInt32 *return_len); 134 135 /****f* silcutil/SilcFileUtilAPI/silc_file_writefile 136 * 137 * SYNOPSIS 138 * 139 * int silc_file_writefile(const char *filename, const char *buffer, 140 * SilcUInt32 len); 141 * 142 * DESCRIPTION 143 * 144 * Writes a buffer to the file. If the file is created specific mode is 145 * set to the file. 146 * 147 ***/ 148 int silc_file_writefile(const char *filename, const char *buffer, 149 SilcUInt32 len); 150 151 /****f* silcutil/SilcFileUtilAPI/silc_file_writefile_mode 152 * 153 * SYNOPSIS 154 * 155 * int silc_file_writefile_mode(const char *filename, const char *buffer, 156 * SilcUInt32 len, int mode); 157 * 158 * DESCRIPTION 159 * 160 * Writes a buffer to the file. If the file is created the specified `mode' 161 * is set to the file. 162 * 163 ***/ 164 int silc_file_writefile_mode(const char *filename, const char *buffer, 165 SilcUInt32 len, int mode); 166 167 /****f* silcutil/SilcFileUtilAPI/silc_file_size 168 * 169 * SYNOPSIS 170 * 171 * SilcUInt64 silc_file_size(const char *filename); 172 * 173 * DESCRIPTION 174 * 175 * Returns the size of `filename'. Returns 0 on error. 176 * 177 ***/ 178 SilcUInt64 silc_file_size(const char *filename); 179 180 #endif /* !SILCFILEUTIL_H */ 181