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
を呼び出します。
memcpy
のサポートには少なくともJulia 1.10が必要です。
Base.memmove
— Functionmemmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}
C標準ライブラリからmemmove
を呼び出します。
memmove
のサポートには少なくともJulia 1.10が必要です。
Base.memset
— Functionmemset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}
C標準ライブラリからmemset
を呼び出します。
memset
のサポートには少なくともJulia 1.10が必要です。
Base.memcmp
— Functionmemcmp(a::Ptr, b::Ptr, n::Integer) -> Int
C標準ライブラリからmemcmp
を呼び出します。
memcmp
のサポートには少なくともJulia 1.9が必要です。
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) -> Float64
TmStruct
構造体をエポックからの秒数に変換します。
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プラットフォームでのみサポートされています。
mkfifo
は少なくともJulia 1.11が必要です。