Pular para o conteúdo principal

STD

O módulo std fornece wrappers para as bibliotecas padrão do C (stdlib.h e stdio.h), além de algumas outras utilidades.

Wrappers para os arquivos padrão do libc: stdin, stdout e stderr.

  • std.in
  • std.out
  • std.err

Enumeração

Objeto que contém os valores inteiros dos erros comuns (códigos de erro adicionais podem ser definidos).

  • std.EINVAL
  • std.EIO
  • std.EACCES
  • std.EEXIST
  • std.ENOSPC
  • std.ENOSYS
  • std.EBUSY
  • std.ENOENT
  • std.EPERM
  • std.EPIPE

Métodos

evalScript

Avalia a string str como um script (eval global).

std.evalScript(str, options = undefined);

options é um objeto opcional contendo as seguintes propriedades opcionais:

  • std.backtrace_barrier - Boolean (padrão = false). Se verdadeiro, os rastreamentos de erro não listam os frames da pilha abaixo do evalScript.

loadScript

Avalia o arquivo filename como um script (eval global).

std.loadScript(filename);

exists

Retorna um booleano indicando se o arquivo existe ou não.

const hasfile = std.exists(filename);

loadFile

Carrega o arquivo filename e retorna seu conteúdo como uma string, assumindo codificação UTF-8. Retorna null em caso de erro de I/O.

const fstr = std.loadFile(filename);

open

Abre um arquivo (wrapper para fopen() do libc). Retorna o objeto FILE ou null em caso de erro de I/O. Se errorObj for definido, sua propriedade errno será configurada com o código do erro ou 0 se não houver erro.

const file = std.open(filename, flags, errorObj = undefined);

fdopen

Abra um arquivo a partir de um descritor de arquivo (envoltório para o libc fdopen()). Retorna o objeto FILE ou null em caso de erro de I/O. Se errorObj não estiver indefinido, defina a propriedade errno como o código de erro ou 0 se não ocorrer erro.

std.fdopen(fd, flags, errorObj = undefined);

tmpfile

Abre um arquivo temporário. Retorna o objeto FILE ou null em caso de erro de I/O. Se errorObj não for undefined, define sua propriedade errno com o código de erro ou 0 se nenhum erro ocorrer.

std.tmpfile(errorObj = undefined);

puts

Equivalente a std.out.puts(str).

std.puts(str);

printf

Equivalente a std.out.printf(fmt, ...args).

std.printf(fmt, ...args);

sprintf

Equivalente à função sprintf() do libc.

std.sprintf(fmt, ...args);

strerror

Retorna uma string que descreve o erro errno.

std.strerror(errno);

gc

Invoca manualmente o algoritmo de remoção de ciclos. Ele é iniciado automaticamente quando necessário, então esta função é útil para casos de restrições específicas de memória ou para testes.

std.gc();

parseExtJSON

Analisa str usando um superconjunto do JSON.parse.

std.parseExtJSON(str);

As seguintes extensões são aceitas:

  • Comentários de linha única e múltiplas linhas
  • propriedades sem aspas (identificadores ASCII-only do JavaScript)
  • vírgula final em definições de array e objeto
  • strings com aspas simples
  • \f e \v são aceitos como caracteres de espaço
  • sinal de mais (+) antes de números
  • números octais (prefixo 0o) e hexadecimais (prefixo 0x)

FILE

open

const file = std.open(filename, flags);
const file = std.open("test.txt", "w");
info
  • filename - Caminho para o arquivo, Ex.: "samples/test.txt".
  • flags - Modo do arquivo, Ex.: "w", "r", "wb", "rb", etc.

close

Fecha o arquivo. Retorna 0 se bem-sucedido ou -errno em caso de erro de I/O.

close();

puts

Exibe a string com codificação UTF-8.

puts(str);

printf

printf formatado.

printf(fmt, ...args);
info

Suporta os mesmos formatos da função printf da biblioteca padrão C. Tipos de formato inteiros (ex.: %d) truncam Numbers ou BigInts para 32 bits. Use o modificador l (ex.: %ld) para truncar para 64 bits.

flush

Esvazia o buffer do arquivo.

flush();

seek

Move-se para uma posição específica no arquivo (whence é std.SEEK_*). offset pode ser um número ou bigint. Retorna 0 se bem-sucedido ou -errno em caso de erro de I/O.

seek(offset, whence);

Constantes:

  • std.SEEK_SET
  • std.SEEK_CUR
  • std.SEEK_END

tell

Retorna a posição atual no arquivo.

tell();

tello

Retorna a posição atual no arquivo como um bigint.

tello();

eof

Retorna verdadeiro se for o fim do arquivo.

eof();

fileno

Retorna o identificador do sistema operacional associado.

fileno();

error

Retorna true se houver um erro.

error();

clearerr

Limpa a indicação de erro.

clearerr();

read

Lê o comprimento de bytes do arquivo para o buffer do ArrayBuffer na posição do byte (wrapper para libc fread).

read(buffer, position, length);

write

Escreve o comprimento de bytes do arquivo para o buffer do ArrayBuffer na posição do byte (wrapper para libc fwrite).

write(buffer, position, length);

getline

Retorna a próxima linha do arquivo, assumindo codificação UTF-8, excluindo a quebra de linha no final.

getline();

readAsString

Lê um número máximo de bytes do arquivo e retorna como uma string UTF-8. Se max_size não for especificado, lê até o final do arquivo.

readAsString(max_size = undefined);

getByte

Retorna o próximo byte do arquivo. Retorna -1 se o final do arquivo for atingido.

getByte();

putByte

Escreve um byte no arquivo.

putByte(c);