C Standard Library
Base.Libc.malloc — Functionmalloc(size::Integer) -> Ptr{Cvoid}C標準ライブラリからmallocを呼び出します。
Base.Libc.calloc — Functioncalloc(num::Integer, size::Integer) -> Ptr{Cvoid}C標準ライブラリからcallocを呼び出します。
Base.Libc.realloc — Functionrealloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}C標準ライブラリからreallocを呼び出します。
Base.memcpy — Functionmemcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}C標準ライブラリからmemcpyを呼び出します。
Base.memmove — Functionmemmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}C標準ライブラリからmemmoveを呼び出します。
Base.memset — Functionmemset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}C標準ライブラリからmemsetを呼び出します。
Base.memcmp — Functionmemcmp(a::Ptr, b::Ptr, n::Integer) -> IntC標準ライブラリからmemcmpを呼び出します。
Base.Libc.free — Functionfree(addr::Ptr)C標準ライブラリからfreeを呼び出します。これはmallocから取得したメモリにのみ使用し、他のCライブラリから取得したポインタには使用しないでください。Cライブラリから取得したPtrオブジェクトは、そのライブラリで定義されたfree関数によって解放する必要があります。システムに複数のlibcライブラリが存在する場合、アサーション失敗を避けるためです。
Base.Libc.errno — Functionerrno([code])Cライブラリのerrnoの値を取得します。引数が指定されている場合、それはerrnoの値を設定するために使用されます。
errnoの値は、errnoを設定するCライブラリのルーチンへのccallの直後のみ有効です。具体的には、REPLの次のプロンプトでerrnoを呼び出すことはできません。なぜなら、プロンプトの間に多くのコードが実行されるからです。
Base.Libc.strerror — Functionstrerror(n=errno())システムコールエラーコードを説明的な文字列に変換します。
Base.Libc.GetLastError — FunctionGetLastError()Win32のGetLastError関数を呼び出します[Windowsでのみ利用可能]。
Base.Libc.FormatMessage — FunctionFormatMessage(n=GetLastError())Win32システムコールエラーコードを説明的な文字列に変換します[Windowsのみで利用可能]。
Base.Libc.time — Methodtime(t::TmStruct) -> Float64TmStruct 構造体をエポックからの秒数に変換します。
Base.Libc.strftime — Functionstrftime([format], time)エポックからの秒数または TmStruct として与えられた時間を、指定されたフォーマットを使用してフォーマットされた文字列に変換します。サポートされているフォーマットは、標準Cライブラリのものと同じです。
Base.Libc.strptime — Functionstrptime([format], timestr)フォーマットされた時間文字列を TmStruct に解析し、秒、分、時、日付などを提供します。サポートされているフォーマットは、標準Cライブラリのものと同じです。一部のプラットフォームでは、タイムゾーンが正しく解析されない場合があります。この関数の結果が time に渡されてエポックからの秒に変換される場合、isdst フィールドは手動で設定する必要があります。これを -1 に設定すると、Cライブラリは現在のシステム設定を使用してタイムゾーンを決定します。
Base.Libc.TmStruct — TypeTmStruct([秒])エポックからの秒数を分解された形式に変換し、フィールド sec, min, hour, mday, month, year, wday, yday, および isdst を持ちます。
Base.Libc.FILE — TypeFILE(::Ptr)
FILE(::IO)libcのFILE*で、開かれたファイルを表します。
これはPtr{FILE}引数としてccallに渡すことができ、またseek、position、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"Base.Libc.flush_cstdio — Functionflush_cstdio()Cのstdoutおよびstderrストリームをフラッシュします(外部Cコードによって書き込まれている可能性があります)。
Base.Libc.systemsleep — Functionsystemsleep(s::Real)s秒間実行を一時停止します。この関数はJuliaのスケジューラに制御を渡さないため、スリープ時間の間、実行中のJuliaスレッドをブロックします。
関連情報はsleepを参照してください。
Base.Libc.mkfifo — Functionmkfifo(path::AbstractString, [mode::Integer]) -> path指定された path にFIFO特別ファイル(名前付きパイプ)を作成します。成功した場合は path をそのまま返します。
mkfifo はUnixプラットフォームでのみサポートされています。