Стандартная библиотека C
#
Base.Libc.malloc — Function
malloc(size::Integer) -> Ptr{Cvoid}
Вызывает malloc из стандартной библиотеки С.
#
Base.Libc.calloc — Function
calloc(num::Integer, size::Integer) -> Ptr{Cvoid}
Вызывает calloc из стандартной библиотеки С.
#
Base.memcpy — Function
memcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
Вызывает memcpy из стандартной библиотеки С.
|
Совместимость: Julia 1.10
Для поддержки |
#
Base.memmove — Function
memmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
Вызывает memmove из стандартной библиотеки С.
|
Совместимость: Julia 1.10
Для поддержки |
#
Base.memset — Function
memset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}
Вызывает memset из стандартной библиотеки С.
|
Совместимость: Julia 1.10
Для поддержки |
#
Base.memcmp — Function
memcmp(a::Ptr, b::Ptr, n::Integer) -> Int
Вызывает memcmp из стандартной библиотеки С.
|
Совместимость: Julia 1.10
Для поддержки |
#
Base.Libc.free — Function
free(addr::Ptr)
Вызывает free из стандартной библиотеки С. Эту возможность можно использовать только для памяти, полученной от malloc, но не для указателей, полученных от других библиотек С. Объекты Ptr, полученные от библиотек С, должны высвобождаться соответствующими функциями, определенными в этих библиотеках, чтобы предотвратить сбои утверждения в случаях, когда в системе есть несколько библиотек libc.
#
Base.Libc.errno — Function
errno([code])
Получает значение из errno библиотеки С. Если задан аргумент, он используется для указания значения errno.
Значение errno действительно только сразу после вызова ccall подпрограммы библиотеки С, которая его задает. В частности, нельзя вызвать errno в следующей командной строке в REPL, поскольку большая часть кода исполняется между командными строками.
#
Base.Libc.strerror — Function
strerror(n=errno())
Преобразует код ошибки системного вызова в строку с описанием.
#
Base.Libc.GetLastError — Function
GetLastError()
Вызывает функцию Win32 GetLastError (доступно только в Windows).
#
Base.Libc.FormatMessage — Function
FormatMessage(n=GetLastError())
Преобразует код ошибки системного вызова Win32 в строку с описанием (доступно только в Windows).
#
Base.Libc.time — Method
time(t::TmStruct) -> Float64
Преобразует структуру TmStruct в значение времени (в секундах) с начала отсчета времени.
#
Base.Libc.strftime — Function
strftime([format], time)
Преобразует значение времени, указанное в секундах с начала отсчета времени или TmStruct, в форматированную строку, используя заданный формат. Поддерживаются те же форматы, что и в стандартной библиотеке С.
#
Base.Libc.strptime — Function
strptime([format], timestr)
Анализирует форматированную строку значения времени в TmStruct, выдавая секунды, минуты, часы, дату и т. д. Поддерживаются те же форматы, что и в стандартной библиотеке С. На некоторых платформах часовые пояса анализируются некорректно. Если результат этой функции передается в time для преобразования в значение времени (в секундах) с начала отсчета времени, поле isdst должно заполняться вручную. Заданное значение -1 сообщает библиотеке С, что необходимо использовать текущие настройки системы для определения часового пояса.
#
Base.Libc.TmStruct — Type
TmStruct([seconds])
Преобразует время в секундах с начала отсчета времени в формат с разбивкой (с полями sec, min, hour, mday, month, year, wday, yday и isdst).
#
Base.Libc.FILE — Type
FILE(::Ptr)
FILE(::IO)
Объект libc FILE*, представляющий открытый файл.
Его можно передать как аргумент Ptr{FILE} в ccall. Кроме того, он поддерживает seek, position и close.
FILE можно создать из обычного объекта IO при условии, что это открытый файл. Впоследствии он должен быть закрыт.
Примеры
julia> using Base.Libc
julia> mktemp() do _, io
# выполняем запись во временный файл, используя `puts(char*, FILE*)` из libc
file = FILE(io)
ccall(:fputs, Cint, (Cstring, Ptr{FILE}), "hello world", file)
close(file)
# снова считываем файл
seek(io, 0)
read(io, String)
end
"hello world"
#
Base.Libc.flush_cstdio — Function
flush_cstdio()
Очищает потоки выполнения C stdout и stderr (в которые могла быть выполнена запись из стороннего кода С).
#
Base.Libc.mkfifo — Function
mkfifo(path::AbstractString, [mode::Integer]) -> path
Создает специальный файл FIFO (именованный канал) в path. При успешном выполнении возвращает path как есть.
mkfifo поддерживается только на платформах Unix.
|
Совместимость: Julia 1.11
Для |