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);
mode
uint32_t mode
Режим работы (0 - Обычный | 1 - Режим логирования)
Definition: bootscreen.c:23
common.h
Основные определения ядра
perror
void perror(FILE *stream, char *s)
Выводит на экран ошибку с пользовательским сообщением
Definition: stdio.c:133
fseek
ssize_t fseek(FILE *stream, ssize_t offset, uint8_t whence)
Установка позиции в потоке данных относительно текущей позиции
Definition: stdio.c:315
fclose
void fclose(FILE *stream)
Закончить работу с файлом
Definition: stdio.c:213
fwrite
size_t fwrite(FILE *stream, size_t size, size_t count, const void *ptr)
Запись файла
Definition: stdio.c:381
ferror
uint32_t ferror(FILE *stream)
Получение кода ошибки
Definition: stdio.c:123
rewind
void rewind(FILE *stream)
Установка позиции потока в самое начало
Definition: stdio.c:362
fopen
FILE * fopen(const char *filename, const char *_mode)
Открывает файл
Definition: stdio.c:166
ftell
int ftell(FILE *stream)
Текущая позиция считывания в файле
Definition: stdio.c:287
fsize
int fsize(FILE *stream)
Получение размера файла в байтах
Definition: stdio.c:227
fread
int fread(FILE *stream, size_t count, size_t size, void *buffer)
Чтение файла
Definition: stdio.c:250
FILE
Структура файла. Требуется для работы с VFS.
Definition: stdio.h:21