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) -> IntLlama 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) -> Float64Convierte 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]) -> pathCrea 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.