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([seconds])エポックからの秒数を分解された形式に変換します。フィールドは sec、min、hour、mday、month、year、wday、yday、および isdst です。
Base.Libc.FILE — TypeFILE(::Ptr)
FILE(::IO)libcのFILE*で、開かれたファイルを表します。
これはccallへのPtr{FILE}引数として渡すことができ、また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.dup — Functiondup(src::RawFD[, target::RawFD])::RawFDファイルディスクリプタ src を複製し、複製が同じOSリソース(例:ファイルやソケット)を参照するようにします。新しい複製に使用するために、オプションで target ファイルディスクリプタを渡すことができます。
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プラットフォームでのみサポートされています。