LibTRO 0
Uma biblioteca com funções semelhantes às do C para fins educacionais na Eletrônica, IF Sul Pelotas.
Carregando...
Procurando...
Nenhuma entrada encontrado
Referência do Arquivo troio.h

Ir para o código-fonte desse arquivo.

Definições e Macros

#define TRO_BUFFER_CAPACITY   512
#define tro_fdybuffer(file)

Definições de Tipos

typedef struct tro_file tro_file

Enumerações

enum  tro_fmode {
  TRO_FMODE_NULL ,
  TRO_FMODE_READ ,
  TRO_FMODE_WRITE ,
  TRO_FMODE_APPEND ,
  TRO_FMODE_RDWT ,
  TRO_FMODE_RDAD
}
enum  tro_fbufmode {
  TRO_FBUFMODE_NO_BUFFER ,
  TRO_FBUFMODE_LINE_BUFFER ,
  TRO_FBUFMODE_FULL_BUFFER
}

Funções

tro_filetro_fopen (const char *filepath, tro_fmode mode)
void tro_fclose (tro_file *file)
void tro_fsetbuf (tro_file *file, tro_fbufmode mode, size_t capacity)
uintptr_t tro_fileno (const tro_file *file)
bool tro_fterminal (const tro_file *file)
bool tro_fwrites (tro_file *file, const char *data, size_t datal)
bool tro_fwrites16 (tro_file *file, const tro_char16 *data, size_t datal)
bool tro_fwriteb (tro_file *file, const uint8_t *data, size_t datal)
bool tro_fwritec (tro_file *file, uint32_t rune, size_t count)
tro_dybuf_pref tro_fbufpref (const tro_file *file)
bool tro_fputc (tro_file *file, tro_urune rune)
bool tro_fputs (tro_file *file, const char *s)
bool tro_fputs16 (tro_file *file, const tro_char16 *s)
bool tro_fflush (tro_file *file)
bool tro_fprintf (tro_file *file, const char *format,...)
bool tro_vfprintf (tro_file *file, const char *format, va_list args)
bool tro_fprintf16 (tro_file *file, const tro_char16 *format,...)
bool tro_vfprintf16 (tro_file *file, const tro_char16 *format, va_list args)
bool tro_putc (tro_urune rune)
bool tro_puts (const char *s)
bool tro_puts16 (const tro_char16 *s)
bool tro_eputc (tro_urune rune)
bool tro_eputs (const char *s)
bool tro_eputs16 (const tro_char16 *s)
bool tro_printf (const char *format,...)
bool tro_vprintf (const char *format, va_list args)
bool tro_printf16 (const tro_char16 *format,...)
bool tro_vprintf16 (const tro_char16 *format, va_list args)
bool tro_eprintf (const char *format,...)
bool tro_veprintf (const char *format, va_list args)
bool tro_eprintf16 (const tro_char16 *format,...)
bool tro_veprintf16 (const tro_char16 *format, va_list args)

Variáveis

const tro_dybuffer_i *const tro_fdybuffer_vt
tro_file *const troout
tro_file *const troin
tro_file *const troerr

Definições e macros

◆ TRO_BUFFER_CAPACITY

#define TRO_BUFFER_CAPACITY   512

Capacidade padrão do buffer de tro_file.

Veja também
tro_fsetbuf

◆ tro_fdybuffer

#define tro_fdybuffer ( file)
Valor:
.obj = (void *)file, \
.vtable = tro_fdybuffer_vt, \
})
Definição dybuffer.h:107
const tro_dybuffer_i *const tro_fdybuffer_vt
Definição troio.h:47

Macro de cast de tro_file para tro_dybuffer_obj.

Definições dos tipos

◆ tro_file

typedef struct tro_file tro_file

Normalmente, representa um arquivo do sistema, mas também pode representar um console/terminal. Implementa a interface tro_dybuffer.

Veja também
tro_fdybuffer
troout;
troin;
troerr;

Enumerações

◆ tro_fmode

enum tro_fmode

Representa o modo de acesso de um tro_file.

Enumeradores
TRO_FMODE_NULL 

Nenhum modo. Só aparece quando há problemas. NÃO deve ser usado para abrir um tro_file.

TRO_FMODE_READ 

tro_file é apenas leitura.

TRO_FMODE_WRITE 

tro_file é apenas escrita.

TRO_FMODE_APPEND 

tro_file é apenas escrita aditiva.

TRO_FMODE_RDWT 

tro_file é leitura e escrita.

TRO_FMODE_RDAD 

tro_file é leitura e escrita aditiva.

◆ tro_fbufmode

Representa o modo de gerenciamento do buffer interno de tro_file.

Veja também
tro_fsetbuf
Enumeradores
TRO_FBUFMODE_NO_BUFFER 

tro_file simplesmente não usa um buffer, escreve tudo imediatamente.

TRO_FBUFMODE_LINE_BUFFER 

tro_file fica armazenando os dados escritos em seu buffer interno até um '\n' ser escrito (ou até o buffer ficar cheio) para aí sim escrever os dados do buffer interno no arquivo real.

TRO_FBUFMODE_FULL_BUFFER 

tro_file fica armazenando os dados escritos em seu buffer interno até ele ficar cheio para aí sim escrever os dados do buffer interno no arquivo real.

Funções

◆ tro_fopen()

tro_file * tro_fopen ( const char * filepath,
tro_fmode mode )

Abre um arquivo ou cria um se não existir.

Por padrão o modo de gerenciamento do buffer interno é TRO_FBUFMODE_FULL_BUFFER.

Parâmetros
filepathé o caminho do arquivo.
modeé o modo de acesso.
Retorna
um ponteiro para o objeto tro_file aberto, NULL em caso de falha.
Veja também
tro_fclose

◆ tro_fclose()

void tro_fclose ( tro_file * file)

Fecha um arquivo e automaticamente usa tro_fflush.

Parâmetros
fileo arquivo a ser fechado.

◆ tro_fsetbuf()

void tro_fsetbuf ( tro_file * file,
tro_fbufmode mode,
size_t capacity )

Configura o buffer interno de um tro_file.

Parâmetros
fileo objeto.
modeo modo de gerenciamento do buffer interno.
capacityé a capacidade do buffer interno. Se for 0, não muda a capacidade. Completamente ignorado se mode for TRO_FBUFMODE_NO_BUFFER.

◆ tro_fileno()

uintptr_t tro_fileno ( const tro_file * file)
Parâmetros
fileo objeto.
Retorna
o identificador nativo do arquivo aberto, sendo um HANDLE em Win32 ou um int (file descriptor) em ambiente tipo Unix, então cast é seguro.
#if TRO_SYSTEM_WIN32
HANDLE hnd = (HANDLE)tro_fileno(file);
// Código Windows...
#elif TRO_SYSTEM_UNIX_LIKE
int fd = (int)tro_fileno(file);
// Código POSIX...
#else
# error "..."
#endif
uintptr_t tro_fileno(const tro_file *file)
Veja também
tro/conditionals.h

◆ tro_fterminal()

bool tro_fterminal ( const tro_file * file)
Parâmetros
fileo objeto.
Retorna
true se file for um console/terminal, false caso contrário.

◆ tro_fwrites()

bool tro_fwrites ( tro_file * file,
const char * data,
size_t datal )
Parâmetros
fileo objeto.
dataé uma string UTF-8.
datalé o comprimento de data, caso seja 0, se assume data terminado em '\0'.
Retorna
true se sucedido, false se falhou.

◆ tro_fwrites16()

bool tro_fwrites16 ( tro_file * file,
const tro_char16 * data,
size_t datal )
Parâmetros
fileo objeto.
dataé uma string UTF-16.
datalé o comprimento de data, caso seja 0, se assume data terminado em '\0'.
Retorna
true se sucedido, false se falhou.

◆ tro_fwriteb()

bool tro_fwriteb ( tro_file * file,
const uint8_t * data,
size_t datal )
Parâmetros
fileo objeto.
dataé uma sequência de bytes arbitrária.
datalé o comprimento de data.
Retorna
true se sucedido, false se falhou.

◆ tro_fwritec()

bool tro_fwritec ( tro_file * file,
uint32_t rune,
size_t count )
Parâmetros
fileo objeto.
runeé uma runa (code point).
countdiz quantas vezes se deve escrever rune.
Retorna
true se sucedido, false se falhou.

◆ tro_fbufpref()

tro_dybuf_pref tro_fbufpref ( const tro_file * file)
Parâmetros
fileo objeto.
Retorna
a preferência de encoding.

◆ tro_fputc()

bool tro_fputc ( tro_file * file,
tro_urune rune )

Escreve uma runa em um tro_file.

Parâmetros
fileo objeto.
runeé a runa (code point).
Retorna
true se sucedido, false se falhou.

◆ tro_fputs()

bool tro_fputs ( tro_file * file,
const char * s )

Escreve uma string terminada em '\0' em um tro_file.

Parâmetros
fileo objeto.
sé string UTF-8.
Retorna
true se sucedido, false se falhou.

◆ tro_fputs16()

bool tro_fputs16 ( tro_file * file,
const tro_char16 * s )

Escreve uma string terminada em '\0' em um tro_file.

Parâmetros
fileo objeto.
sé string UTF-16.
Retorna
true se sucedido, false se falhou.

◆ tro_fflush()

bool tro_fflush ( tro_file * file)

Escreve os dados do buffer interno no arquivo real e esvazia o buffer interno**. Não tem efeito quando o modo de gerenciamento do *buffer interno do tro_file é TRO_FBUFMODE_NO_BUFFER.

Parâmetros
fileo objeto.
Retorna
true se sucedido, false se falhou.

◆ tro_fprintf()

bool tro_fprintf ( tro_file * file,
const char * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
fileo objeto.
formaté a string de formatação em UTF-8.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_vfprintf()

bool tro_vfprintf ( tro_file * file,
const char * format,
va_list args )

Implementação com lista variádica de tro_fprintf.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
fileo objeto.
formaté a string de formatação em UTF-8.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_fprintf16()

bool tro_fprintf16 ( tro_file * file,
const tro_char16 * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
fileo objeto.
formaté a string de formatação em UTF-16.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_vfprintf16()

bool tro_vfprintf16 ( tro_file * file,
const tro_char16 * format,
va_list args )

Implementação com lista variádica de tro_fprintf16.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
fileo objeto.
formaté a string de formatação em UTF-16.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_putc()

bool tro_putc ( tro_urune rune)

Escreve uma runa em troout.

Parâmetros
runeé a runa (code point).
Retorna
true se sucedido, false se falhou.

◆ tro_puts()

bool tro_puts ( const char * s)

Escreve uma string terminada em '\0' em troout.

Parâmetros
sé string UTF-8.
Retorna
true se sucedido, false se falhou.

◆ tro_puts16()

bool tro_puts16 ( const tro_char16 * s)

Escreve uma string terminada em '\0' em troout.

Parâmetros
sé string UTF-16.
Retorna
true se sucedido, false se falhou.

◆ tro_eputc()

bool tro_eputc ( tro_urune rune)

Escreve uma runa em troerr.

Parâmetros
runeé a runa (code point).
Retorna
true se sucedido, false se falhou.

◆ tro_eputs()

bool tro_eputs ( const char * s)

Escreve uma string terminada em '\0' em troerr.

Parâmetros
sé string UTF-8.
Retorna
true se sucedido, false se falhou.

◆ tro_eputs16()

bool tro_eputs16 ( const tro_char16 * s)

Escreve uma string terminada em '\0' em troerr.

Parâmetros
sé string UTF-16.
Retorna
true se sucedido, false se falhou.

◆ tro_printf()

bool tro_printf ( const char * format,
... )

Esta função segue o padrão Especificadores de Formato TRO e escreve em troout.

Parâmetros
formaté a string de formatação em UTF-8.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_vprintf()

bool tro_vprintf ( const char * format,
va_list args )

Implementação com lista variádica de tro_printf.

Esta função segue o padrão Especificadores de Formato TRO e escreve em troout.

Parâmetros
formaté a string de formatação em UTF-8.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_printf16()

bool tro_printf16 ( const tro_char16 * format,
... )

Esta função segue o padrão Especificadores de Formato TRO e escreve em troout.

Parâmetros
formaté a string de formatação em UTF-16.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_vprintf16()

bool tro_vprintf16 ( const tro_char16 * format,
va_list args )

Implementação com lista variádica de tro_printf.

Esta função segue o padrão Especificadores de Formato TRO e escreve em troout.

Parâmetros
formaté a string de formatação em UTF-16.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_eprintf()

bool tro_eprintf ( const char * format,
... )

Esta função segue o padrão Especificadores de Formato TRO e escreve em troerr.

Parâmetros
formaté a string de formatação em UTF-8.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_veprintf()

bool tro_veprintf ( const char * format,
va_list args )

Implementação com lista variádica de tro_eprintf.

Esta função segue o padrão Especificadores de Formato TRO e escreve em troerr.

Parâmetros
formaté a string de formatação em UTF-8.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_eprintf16()

bool tro_eprintf16 ( const tro_char16 * format,
... )

Esta função segue o padrão Especificadores de Formato TRO e escreve em troerr.

Parâmetros
formaté a string de formatação em UTF-16.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_veprintf16()

bool tro_veprintf16 ( const tro_char16 * format,
va_list args )

Implementação com lista variádica de tro_eprintf16.

Esta função segue o padrão Especificadores de Formato TRO e escreve em troerr.

Parâmetros
formaté a string de formatação em UTF-16.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

Variáveis

◆ tro_fdybuffer_vt

const tro_dybuffer_i* const tro_fdybuffer_vt

Tabela virtual com os métodos de tro_file para a interface tro_dybuffer.

◆ troout

tro_file* const troout
extern

Representação da saída padrão. O modo de gerenciamento do buffer interno é TRO_FBUFMODE_LINE_BUFFER. Normalmente é um console/terminal a menos que tenha sido redirecionado para um arquivo.

Aviso
Este objeto é gerenciada pela LibTRO, portanto você NÃO deve usar tro_fclose neste arquivo pois pode causar comportamentos indefinidos e imprevisíveis.

◆ troin

tro_file* const troin
extern

Representação da entrada padrão. Normalmente é um console/terminal a menos que tenha sido redirecionado para um arquivo.

Aviso
Este objeto é gerenciada pela LibTRO, portanto você NÃO deve usar tro_fclose neste arquivo pois pode causar comportamentos indefinidos e imprevisíveis.

◆ troerr

tro_file* const troerr
extern

Representação da saída de erro padrão. O modo de gerenciamento do buffer interno é TRO_FBUFMODE_LINE_BUFFER. Normalmente é um console/terminal a menos que tenha sido redirecionado para um arquivo.

Aviso
Este objeto é gerenciada pela LibTRO, portanto você NÃO deve usar tro_fclose neste arquivo pois pode causar comportamentos indefinidos e imprevisíveis.