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([형식], 시간)

주어진 형식을 사용하여 에포크 이후의 초 수 또는 TmStruct로 주어진 시간을 형식화된 문자열로 변환합니다. 지원되는 형식은 표준 C 라이브러리의 형식과 동일합니다.

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

형식화된 시간 문자열을 초, 분, 시, 날짜 등을 제공하는 TmStruct로 구문 분석합니다. 지원되는 형식은 표준 C 라이브러리의 형식과 동일합니다. 일부 플랫폼에서는 시간대가 올바르게 구문 분석되지 않을 수 있습니다. 이 함수의 결과가 time에 전달되어 에포크 이후의 초로 변환될 경우, isdst 필드는 수동으로 채워야 합니다. 이를 -1로 설정하면 C 라이브러리에 현재 시스템 설정을 사용하여 시간대를 결정하도록 지시합니다.

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

에포크 이후의 초를 분해된 형식으로 변환하며, 필드는 sec, min, hour, mday, month, year, wday, yday, 및 isdst입니다.

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

libc FILE*는 열린 파일을 나타냅니다.

Ptr{FILE} 인수로 ccall에 전달할 수 있으며, seek, positionclose도 지원합니다.

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 stdoutstderr 스트림을 플러시합니다(외부 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