C Standard Library

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

C標準ライブラリからmallocを呼び出します。

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

C標準ライブラリからcallocを呼び出します。

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

C標準ライブラリからreallocを呼び出します。

mallocから元々取得したメモリに対してのみ使用することに関する警告は、freeのドキュメントを参照してください。

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

C標準ライブラリからmemcpyを呼び出します。

Julia 1.10

memcpyのサポートには少なくともJulia 1.10が必要です。

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

C標準ライブラリからmemmoveを呼び出します。

Julia 1.10

memmoveのサポートには少なくともJulia 1.10が必要です。

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

C標準ライブラリからmemsetを呼び出します。

Julia 1.10

memsetのサポートには少なくともJulia 1.10が必要です。

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

C標準ライブラリからmemcmpを呼び出します。

Julia 1.10

memcmpのサポートには少なくともJulia 1.9が必要です。

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

C標準ライブラリからfreeを呼び出します。これは、mallocから取得したメモリにのみ使用してください。他のCライブラリから取得したポインタに対しては使用しないでください。Cライブラリから取得したPtrオブジェクトは、そのライブラリで定義されたfree関数によって解放する必要があります。システムに複数のlibcライブラリが存在する場合、アサーション失敗を避けるためです。

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

Cライブラリのerrnoの値を取得します。引数が指定されている場合、それはerrnoの値を設定するために使用されます。

errnoの値は、errnoを設定するCライブラリのルーチンへのccallの直後のみ有効です。具体的には、REPLの次のプロンプトでerrnoを呼び出すことはできません。なぜなら、プロンプトの間に多くのコードが実行されるからです。

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

システムコールエラーコードを説明的な文字列に変換します。

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

Win32システムコールエラーコードを説明的な文字列に変換します[Windowsのみで利用可能]。

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

TmStruct 構造体をエポックからの秒数に変換します。

source
Base.Libc.strftimeFunction
strftime([format], time)

エポックからの秒数または TmStruct として与えられた時間を、指定されたフォーマットを使用してフォーマットされた文字列に変換します。サポートされているフォーマットは、標準Cライブラリのものと同じです。

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

フォーマットされた時間文字列を TmStruct に解析し、秒、分、時、日付などを提供します。サポートされているフォーマットは、標準Cライブラリのものと同じです。一部のプラットフォームでは、タイムゾーンが正しく解析されない場合があります。この関数の結果が time に渡されてエポックからの秒に変換される場合、isdst フィールドは手動で設定する必要があります。これを -1 に設定すると、Cライブラリは現在のシステム設定を使用してタイムゾーンを決定します。

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

エポックからの秒数を分解された形式に変換します。フィールドは secminhourmdaymonthyearwdayyday、および isdst です。

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

libcのFILE*で、開かれたファイルを表します。

これはPtr{FILE}引数としてccallに渡すことができ、またseekposition、およびcloseもサポートしています。

FILEは、通常のIOオブジェクトから構築できますが、それは開かれたファイルである必要があります。その後、閉じる必要があります。

julia> using Base.Libc

julia> mktemp() do _, io
           # libcの`puts(char*, FILE*)`を使用して一時ファイルに書き込む
           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

指定された path にFIFO特別ファイル(名前付きパイプ)を作成します。成功した場合は path をそのまま返します。

mkfifo はUnixプラットフォームでのみサポートされています。

Julia 1.11

mkfifo は少なくともJulia 1.11が必要です。

source