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([형식], 시간)
주어진 형식을 사용하여 에포크 이후의 초 수 또는 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이 필요합니다.