Документация Engee

Стандартная библиотека C

malloc(size::Integer) -> Ptr{Cvoid}

Вызывает malloc из стандартной библиотеки С.

calloc(num::Integer, size::Integer) -> Ptr{Cvoid}

Вызывает calloc из стандартной библиотеки С.

realloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}

Вызывает realloc из стандартной библиотеки С.

См. предупреждение в документации по free о том, что эту возможность можно использовать только для памяти, изначально полученной от malloc.

memcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

Вызывает memcpy из стандартной библиотеки С.

Совместимость: Julia 1.10

Для поддержки memcpy требуется версия Julia не ниже 1.10.

memmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

Вызывает memmove из стандартной библиотеки С.

Совместимость: Julia 1.10

Для поддержки memmove требуется версия Julia не ниже 1.10.

memset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}

Вызывает memset из стандартной библиотеки С.

Совместимость: Julia 1.10

Для поддержки memset требуется версия Julia не ниже 1.10.

memcmp(a::Ptr, b::Ptr, n::Integer) -> Int

Вызывает memcmp из стандартной библиотеки С.

Совместимость: Julia 1.10

Для поддержки memcmp требуется версия Julia не ниже 1.9.

free(addr::Ptr)

Вызывает free из стандартной библиотеки С. Эту возможность можно использовать только для памяти, полученной от malloc, но не для указателей, полученных от других библиотек С. Объекты Ptr, полученные от библиотек С, должны высвобождаться соответствующими функциями, определенными в этих библиотеках, чтобы предотвратить сбои утверждения в случаях, когда в системе есть несколько библиотек libc.

errno([code])

Получает значение из errno библиотеки С. Если задан аргумент, он используется для указания значения errno.

Значение errno действительно только сразу после вызова ccall подпрограммы библиотеки С, которая его задает. В частности, нельзя вызвать errno в следующей командной строке в REPL, поскольку большая часть кода исполняется между командными строками.

strerror(n=errno())

Преобразует код ошибки системного вызова в строку с описанием.

GetLastError()

Вызывает функцию Win32 GetLastError (доступно только в Windows).

FormatMessage(n=GetLastError())

Преобразует код ошибки системного вызова Win32 в строку с описанием (доступно только в Windows).

time(t::TmStruct) -> Float64

Преобразует структуру TmStruct в значение времени (в секундах) с начала отсчета времени.

strftime([format], time)

Преобразует значение времени, указанное в секундах с начала отсчета времени или TmStruct, в форматированную строку, используя заданный формат. Поддерживаются те же форматы, что и в стандартной библиотеке С.

strptime([format], timestr)

Анализирует форматированную строку значения времени в TmStruct, выдавая секунды, минуты, часы, дату и т. д. Поддерживаются те же форматы, что и в стандартной библиотеке С. На некоторых платформах часовые пояса анализируются некорректно. Если результат этой функции передается в time для преобразования в значение времени (в секундах) с начала отсчета времени, поле isdst должно заполняться вручную. Заданное значение -1 сообщает библиотеке С, что необходимо использовать текущие настройки системы для определения часового пояса.

TmStruct([seconds])

Преобразует время в секундах с начала отсчета времени в формат с разбивкой (с полями sec, min, hour, mday, month, year, wday, yday и isdst).

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"
flush_cstdio()

Очищает потоки выполнения C stdout и stderr (в которые могла быть выполнена запись из стороннего кода С).

systemsleep(s::Real)

Приостанавливает выполнение на s секунд. Эта функция не выдает данные в планировщик Julia и, таким образом, блокирует поток выполнения Julia, который выполняется в течение периода бездействия.

См. также описание sleep.

mkfifo(path::AbstractString, [mode::Integer]) -> path

Создает специальный файл FIFO (именованный канал) в path. При успешном выполнении возвращает path как есть.

mkfifo поддерживается только на платформах Unix.

Совместимость: Julia 1.11

Для mkfifo требуется версия Julia не ниже 1.11.