C Standard Library
Base.Libc.malloc
— Functionmalloc(size::Integer) -> Ptr{Cvoid}
Llama a malloc
de la biblioteca estándar de C.
Base.Libc.calloc
— Functioncalloc(num::Integer, size::Integer) -> Ptr{Cvoid}
Llama a calloc
de la biblioteca estándar de C.
Base.Libc.realloc
— Functionrealloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}
Llama a realloc
de la biblioteca estándar de C.
Consulta la advertencia en la documentación de free
sobre el uso de esto solo en memoria obtenida originalmente de malloc
.
Base.memcpy
— Functionmemcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
Llama a memcpy
de la biblioteca estándar de C.
El soporte para memcpy
requiere al menos Julia 1.10.
Base.memmove
— Functionmemmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
Llama a memmove
de la biblioteca estándar de C.
El soporte para memmove
requiere al menos Julia 1.10.
Base.memset
— Functionmemset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}
Llama a memset
de la biblioteca estándar de C.
El soporte para memset
requiere al menos Julia 1.10.
Base.memcmp
— Functionmemcmp(a::Ptr, b::Ptr, n::Integer) -> Int
Llama a memcmp
de la biblioteca estándar de C.
El soporte para memcmp
requiere al menos Julia 1.9.
Base.Libc.free
— Functionfree(addr::Ptr)
Llama a free
de la biblioteca estándar de C. Solo usa esto en memoria obtenida de malloc
, no en punteros recuperados de otras bibliotecas de C. Los objetos Ptr
obtenidos de bibliotecas de C deben ser liberados por las funciones free definidas en esa biblioteca, para evitar fallos de aserción si existen múltiples bibliotecas libc
en el sistema.
Base.Libc.errno
— Functionerrno([código])
Obtiene el valor de errno
de la biblioteca C. Si se especifica un argumento, se utiliza para establecer el valor de errno
.
El valor de errno
solo es válido inmediatamente después de un ccall
a una rutina de la biblioteca C que lo establece. Específicamente, no puedes llamar a errno
en el siguiente aviso en un REPL, porque se ejecuta mucho código entre avisos.
Base.Libc.strerror
— Functionstrerror(n=errno())
Convierte un código de error de llamada al sistema en una cadena descriptiva.
Base.Libc.GetLastError
— FunctionGetLastError()
Llama a la función Win32 GetLastError
[solo disponible en Windows].
Base.Libc.FormatMessage
— FunctionFormatMessage(n=GetLastError())
Convierte un código de error de llamada al sistema Win32 en una cadena descriptiva [solo disponible en Windows].
Base.Libc.time
— Methodtime(t::TmStruct) -> Float64
Convierte una estructura TmStruct
a un número de segundos desde la época.
Base.Libc.strftime
— Functionstrftime([formato], tiempo)
Convierte el tiempo, dado como un número de segundos desde la época o un TmStruct
, a una cadena formateada utilizando el formato dado. Los formatos soportados son los mismos que los de la biblioteca estándar de C.
Base.Libc.strptime
— Functionstrptime([formato], timestr)
Analiza una cadena de tiempo formateada en un TmStruct
que da los segundos, minutos, horas, fecha, etc. Los formatos admitidos son los mismos que los de la biblioteca estándar de C. En algunas plataformas, las zonas horarias no se analizarán correctamente. Si el resultado de esta función se pasará a time
para convertirlo en segundos desde la época, el campo isdst
debe llenarse manualmente. Establecerlo en -1
indicará a la biblioteca C que use la configuración del sistema actual para determinar la zona horaria.
Base.Libc.TmStruct
— TypeTmStruct([segundos])
Convierte un número de segundos desde la época a un formato desglosado, con los campos sec
, min
, hour
, mday
, month
, year
, wday
, yday
y isdst
.
Base.Libc.FILE
— TypeFILE(::Ptr)
FILE(::IO)
Un FILE*
de libc, que representa un archivo abierto.
Se puede pasar como un argumento Ptr{FILE}
a ccall
y también soporta seek
, position
y close
.
Un FILE
se puede construir a partir de un objeto IO
ordinario, siempre que sea un archivo abierto. Debe cerrarse después.
Ejemplos
julia> using Base.Libc
julia> mktemp() do _, io
# escribir en el archivo temporal usando `puts(char*, FILE*)` de libc
file = FILE(io)
ccall(:fputs, Cint, (Cstring, Ptr{FILE}), "hello world", file)
close(file)
# leer el archivo nuevamente
seek(io, 0)
read(io, String)
end
"hello world"
Base.Libc.flush_cstdio
— Functionflush_cstdio()
Vacía los flujos stdout
y stderr
de C (que pueden haber sido escritos por código C externo).
Base.Libc.systemsleep
— Functionsystemsleep(s::Real)
Suspende la ejecución durante s
segundos. Esta función no cede al programador de Julia y, por lo tanto, bloquea el hilo de Julia en el que se está ejecutando durante la duración del tiempo de suspensión.
Véase también sleep
.
Base.Libc.mkfifo
— Functionmkfifo(path::AbstractString, [mode::Integer]) -> path
Crea un archivo especial FIFO (un pipe con nombre) en path
. Devuelve path
tal como está en caso de éxito.
mkfifo
solo es compatible con plataformas Unix.
mkfifo
requiere al menos Julia 1.11.