mikroSDK Reference Manual
file.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** Copyright (C) 2024 MikroElektronika d.o.o.
4** Contact: https://www.mikroe.com/contact
5**
6** This file is part of the mikroSDK package
7**
8** Commercial License Usage
9**
10** Licensees holding valid commercial NECTO compilers AI licenses may use this
11** file in accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The MikroElektronika Company.
14** For licensing terms and conditions see
15** https://www.mikroe.com/legal/software-license-agreement.
16** For further information use the contact form at
17** https://www.mikroe.com/contact.
18**
19**
20** GNU Lesser General Public License Usage
21**
22** Alternatively, this file may be used for
23** non-commercial projects under the terms of the GNU Lesser
24** General Public License version 3 as published by the Free Software
25** Foundation: https://www.gnu.org/licenses/lgpl-3.0.html.
26**
27** The above copyright notice and this permission notice shall be
28** included in all copies or substantial portions of the Software.
29**
30** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
31** OF MERCHANTABILITY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
32** TO THE WARRANTIES FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
33** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
34** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
35** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
36** OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
37**
38****************************************************************************/
44#ifndef _FILE_H_
45#define _FILE_H_
46
47#ifdef __cplusplus
48extern "C"{
49#endif
50
51#include "file_system.h"
52
76
77
116fs_status_t file_open(file_t * file, fs_file_t fs_specific_file, const char * __generic_ptr path, int flags);
117
135
155fs_status_t file_read(file_t * file, void * buffer, uint32_t bytes_to_read);
156
177fs_status_t file_write(file_t * file, void * buffer, uint32_t bytes_to_write);
178
198
223fs_status_t file_seek(file_t * file, int32_t offset, logical_drive_type_t starting_position);
224
238uint32_t file_tell(file_t * file);
239
257
271uint32_t file_size(file_t * file);
272
288fs_status_t file_truncate(file_t * file, uint32_t truncated_size);
289
290 // file_group
291
292#ifdef __cplusplus
293}
294#endif
295
296#endif // !_FILE_H_
File System.
logical_drive_type_t
Logical Drive File System Type Enumerator.
Definition file_system.h:226
void * fs_file_t
: File data specific to a particular file system.
Definition file_system.h:200
int8_t fs_status_t
: File System API return value
Definition file_system.h:181
fs_status_t file_seek(file_t *file, int32_t offset, logical_drive_type_t starting_position)
Move Read/Write Pointer of the File.
fs_status_t file_read(file_t *file, void *buffer, uint32_t bytes_to_read)
Read Data from the File.
uint32_t file_size(file_t *file)
Get Size of the File.
fs_status_t file_write(file_t *file, void *buffer, uint32_t bytes_to_write)
Write Data to a File.
fs_status_t file_truncate(file_t *file, uint32_t truncated_size)
Truncate File Size.
fs_status_t file_sync(file_t *file)
Flush Cached Data of a File.
fs_status_t file_close(file_t *file)
Close the Opened File.
fs_status_t file_open(file_t *file, fs_file_t fs_specific_file, const char *__generic_ptr path, int flags)
Open or Create a File.
uint32_t file_tell(file_t *file)
Get Current Read/Write Pointer of the File.
fs_status_t file_rewind(file_t *file)
Move Read/Write Pointer to the beginning of the File.
File Data Structure.
Definition file.h:72
fs_file_t fs_file
Definition file.h:74
logical_drive_t * logical_drive
Definition file.h:73
Logical Drive Base Data Structure.
Definition file_system.h:246