C Standard Library

Base.Libc.mallocFunction
malloc(size::Integer) -> Ptr{Cvoid}

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

source
Base.Libc.callocFunction
calloc(num::Integer, size::Integer) -> Ptr{Cvoid}

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

source
Base.Libc.reallocFunction
realloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}

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

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

source
Base.memcpyFunction
memcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

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

Julia 1.10

Поддержка memcpy требует как минимум Julia 1.10.

source
Base.memmoveFunction
memmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

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

Julia 1.10

Поддержка memmove требует как минимум Julia 1.10.

source
Base.memsetFunction
memset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}

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

Julia 1.10

Поддержка memset требует как минимум Julia 1.10.

source
Base.memcmpFunction
memcmp(a::Ptr, b::Ptr, n::Integer) -> Int

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

Julia 1.10

Поддержка memcmp требует как минимум Julia 1.9.

source
Base.Libc.freeFunction
free(addr::Ptr)

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

source
Base.Libc.errnoFunction
errno([code])

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

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

source
Base.Libc.strerrorFunction
strerror(n=errno())

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

source
Base.Libc.GetLastErrorFunction
GetLastError()

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

source
Base.Libc.FormatMessageFunction
FormatMessage(n=GetLastError())

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

source
Base.Libc.timeMethod
time(t::TmStruct) -> Float64

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

source
Base.Libc.strftimeFunction
strftime([формат], время)

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

source
Base.Libc.strptimeFunction
strptime([format], timestr)

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

source
Base.Libc.TmStructType
TmStruct([seconds])

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

source
Base.Libc.FILEType
FILE(::Ptr)
FILE(::IO)

FILE* из libc, представляющий открытый файл.

Его можно передать как аргумент 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"
source
Base.Libc.flush_cstdioFunction
flush_cstdio()

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

source
Base.Libc.systemsleepFunction
systemsleep(s::Real)

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

Смотрите также sleep.

source
Base.Libc.mkfifoFunction
mkfifo(path::AbstractString, [mode::Integer]) -> path

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

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

Julia 1.11

mkfifo требует как минимум Julia 1.11.

source