SayoriOS  0.3.3
stdio.h
1 #pragma once
2 
3 #include "common.h"
4 #include <fs/fsm.h>
5 
6 #define EOF (-1)
7 #define SEEK_SET 0
8 #define SEEK_CUR 1
9 #define SEEK_END 2
10 
11 #define STDIO_ERR_NO_FOUND 1 // Файл не найден
12 #define STDIO_ERR_MODE_ERROR 2 // Режим работы не определён
13 #define STDIO_ERR_SIZE 3 // Размер файла имеет недопустимый размер
14 #define STDIO_ERR_NO_OPEN 4 // Файл не был открыт
15 
16 
21 typedef struct FILE {
22  char* path;
23  uint32_t size;
24  uint32_t fmode;
25  bool open;
26  size_t pos;
27  uint32_t err;
28 } FILE;
29 
30 // Типы открытого файла, тип флагов rw и т.д.
31 enum FileOpenMode {
32  O_READ = 1,
33  O_WRITE = 2,
34  O_CREATE = 4,
35  O_APPEND = 8,
36  O_TRUNC = 16,
37 };
38 
39 FILE* fopen(const char* filename, const char* mode);
40 FILE* fopen_binmode(const char* filename, size_t mode);
41 void fclose(FILE *stream);
42 int32_t fread(FILE* stream, size_t count, size_t size, void* buffer);
43 int ftell(FILE* stream);
44 int fsize(FILE *stream);
45 ssize_t fseek(FILE* stream, ssize_t offset, uint8_t whence);
46 void rewind(FILE *stream);
47 void perror(FILE* stream,char* s);
48 uint32_t ferror(FILE* stream);
49 
50 size_t fwrite(FILE *stream, size_t size, size_t count, const void *ptr);
uint32_t mode
Режим работы (0 - Обычный | 1 - Режим логирования)
Definition: bootscreen.c:23
Основные определения ядра
void perror(FILE *stream, char *s)
Выводит на экран ошибку с пользовательским сообщением
Definition: stdio.c:133
ssize_t fseek(FILE *stream, ssize_t offset, uint8_t whence)
Установка позиции в потоке данных относительно текущей позиции
Definition: stdio.c:315
void fclose(FILE *stream)
Закончить работу с файлом
Definition: stdio.c:213
size_t fwrite(FILE *stream, size_t size, size_t count, const void *ptr)
Запись файла
Definition: stdio.c:381
uint32_t ferror(FILE *stream)
Получение кода ошибки
Definition: stdio.c:123
void rewind(FILE *stream)
Установка позиции потока в самое начало
Definition: stdio.c:362
FILE * fopen(const char *filename, const char *_mode)
Открывает файл
Definition: stdio.c:166
int ftell(FILE *stream)
Текущая позиция считывания в файле
Definition: stdio.c:287
int fsize(FILE *stream)
Получение размера файла в байтах
Definition: stdio.c:227
int fread(FILE *stream, size_t count, size_t size, void *buffer)
Чтение файла
Definition: stdio.c:250
Структура файла. Требуется для работы с VFS.
Definition: stdio.h:21