GitOS
Operating system exercise
Loading...
Searching...
No Matches
file.h File Reference
#include <stdint-gcc.h>

Go to the source code of this file.

Data Structures

struct  file_stat
 

Typedefs

typedef unsigned int FILE_SEEK_MODE
 
typedef unsigned int FILE_MODE
 
typedef unsigned int FILE_STAT_FLAGS
 

Enumerations

enum  FILE_SEEK_MODES { SEEK_SET , SEEK_CUR , SEEK_END }
 
enum  FILE_OPEN_MODES { FILE_MODE_READ , FILE_MODE_WRITE , FILE_MODE_APPEND , FILE_MODE_INVALID }
 
enum  FILE_STAT_FLAGS_ENUM { FILE_STAT_READ_ONLY = 0b00000001 , FILE_STAT_FOLDER = 0b00000010 }
 

Functions

int fopen (const char *filename, const char *mode)
 Opens file.
 
int fread (void *ptr, uint32_t size, uint32_t nmemb, int fd)
 Reads from file.
 
int fwrite (void *ptr, uint32_t size, uint32_t nmemb, int fd)
 Writes to file.
 
int fstat (int fd, struct file_stat *stat)
 Returns file status.
 
int fseek (int fd, int offset, FILE_SEEK_MODE whence)
 Seeks into file.
 
int fclose (int fd)
 Closes file descriptor.
 

Typedef Documentation

◆ FILE_MODE

typedef unsigned int FILE_MODE

◆ FILE_SEEK_MODE

typedef unsigned int FILE_SEEK_MODE

◆ FILE_STAT_FLAGS

typedef unsigned int FILE_STAT_FLAGS

Enumeration Type Documentation

◆ FILE_OPEN_MODES

Enumerator
FILE_MODE_READ 
FILE_MODE_WRITE 
FILE_MODE_APPEND 
FILE_MODE_INVALID 

◆ FILE_SEEK_MODES

Enumerator
SEEK_SET 

Absolute position from 0.

SEEK_CUR 

Relative position.

SEEK_END 

Absolute position from the end of file.

◆ FILE_STAT_FLAGS_ENUM

Enumerator
FILE_STAT_READ_ONLY 
FILE_STAT_FOLDER 

Function Documentation

◆ fclose()

int fclose ( int  fd)

Closes file descriptor.

Parameters
fdFile descriptor
Returns
int Status

References filesystem::close, EIO, file_descriptor::filesystem, and file_descriptor::private_fs_descriptor.

◆ fopen()

◆ fread()

int fread ( void *  ptr,
uint32_t  size,
uint32_t  nmemb,
int  fd 
)

Reads from file.

Parameters
ptrOutput buffer
sizeSize in bytes of block
nmembNumber of blocks to read
fdFile descriptor
Returns
int Status

References EINVARG, file_descriptor::filesystem, file_descriptor::private_fs, file_descriptor::private_fs_descriptor, filesystem::read, and size.

◆ fseek()

int fseek ( int  fd,
int  offset,
FILE_SEEK_MODE  whence 
)

Seeks into file.

Parameters
fdFile descriptor
offsetSeek offset
whenceFile seek mode (SEEK_SET for absolute, SEEK_CUR for relative)
Returns
int Status

References EIO, file_descriptor::filesystem, offset, file_descriptor::private_fs_descriptor, and filesystem::seek.

◆ fstat()

int fstat ( int  fd,
struct file_stat stat 
)

Returns file status.

Parameters
fdFile descriptor
statOutput file status struct
Returns
int Status

References EIO, file_descriptor::filesystem, file_descriptor::private_fs_descriptor, and filesystem::stat.

◆ fwrite()

int fwrite ( void *  ptr,
uint32_t  size,
uint32_t  nmemb,
int  fd 
)

Writes to file.

Parameters
ptrInput buffer
sizeSize in bytes of block
nmembNumber of blocks to read
fdFile descriptor
Returns
int Status

References EINVARG, file_descriptor::filesystem, file_descriptor::private_fs, file_descriptor::private_fs_descriptor, size, and filesystem::write.