Engee 文档

C标准库

malloc(size::Integer) -> Ptr{Cvoid}

从C标准库调用`malloc'。

calloc(num::Integer, size::Integer) -> Ptr{Cvoid}

从C标准库调用`calloc'。

realloc(addr::Ptr, size::Integer) -> Ptr{Cvoid}

从C标准库调用’realloc'。

请参阅文档中的警告 'free'此功能只能用于最初从 'malloc'

memcpy(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

从C标准库调用`memcpy'。

兼容性:Julia1.10

为了支持memcpy’Julia的一个版本至少需要1.10。

memmove(dst::Ptr, src::Ptr, n::Integer) -> Ptr{Cvoid}

从C标准库调用`memmove'。

兼容性:Julia1.10

要支持memmove`至少需要1.10的Julia版本。

memset(dst::Ptr, val, n::Integer) -> Ptr{Cvoid}

从C标准库调用`memset'。

兼容性:Julia1.10

Julia版本1.10或更高版本需要支持memset。

memcmp(a::Ptr, b::Ptr, n::Integer) -> Int

从C标准库调用`memcmp'。

兼容性:Julia1.10

要支持memcmp`需要至少1.9的Julia版本。

free(addr::Ptr)

从C标准库调用"免费"。 此功能只能用于从 'malloc',但不适用于从其他库中获取的指针。 对象 'Ptr'应该由这些库中定义的适当函数释放,以防止在系统中有多个`libc`库的情况下出现批准失败。

errno([code])

从`errno`库中获取值。 如果指定了参数,则用于指定`errno’的值。

'Errno’的值只有在调用设置它的C库例程`ccall`后立即有效。 特别是,您不能在REPL中的下一个命令行上调用`errno',因为大多数代码都是在命令行之间执行的。

strerror(n=errno())

将系统调用错误代码转换为带有描述的字符串。

GetLastError()

调用Win32函数’GetLastError'(仅在Windows上可用)。

FormatMessage(n=GetLastError())

将Win32系统调用的错误代码转换为带有描述的字符串(仅在Windows中可用)。

time(t::TmStruct) -> Float64

将`TmStruct’结构转换为从倒计时开始的时间值(以秒为单位)。

strftime([format], time)

将以秒为单位指定的时间值从倒计时开始或’TmStruct’转换为使用指定格式的格式化字符串。 支持与C标准库中相同的格式。

strptime([format], timestr)

分析’TmStruct’中的时间值的格式化字符串,给出秒,分钟,小时,日期等。 支持与C标准库中相同的格式。 在某些平台上无法正确分析时区。 如果将此函数的结果传递给`time`以转换为从倒计时开始的时间值(以秒为单位),则必须手动填写`isdst’字段。 设置值'-1’告诉C库有必要使用当前系统设置来确定时区。

TmStruct([seconds])

将倒计时开始的时间(以秒为单位)转换为中断格式(包含字段"sec","min","hour","mday","month","year","wday","yday"和"isdst")。

FILE(::Ptr)
FILE(::IO)

表示打开文件的libc`FILE*`对象。

它可以作为参数传递给'Ptr{FILE}'在 'ccall'。 此外,它支持 '寻求', '位置''关闭'

一个’文件`可以从一个普通的`IO’对象创建,前提是它是一个打开的文件。 它应该稍后关闭。

例子

julia> using Base.Libc

julia>mktemp()do_,io
#使用libc中的"puts(char*,FILE*)"写入临时文件
文件=文件(io)
ccall(:fputs,Cint,(Cstring,Ptr{FILE}),"hello world",文件)
关闭(档案)
#再次读取文件
           求(io,0)
           读取(io,字符串)
       结束
"你好世界"
flush_cstdio()

清除C执行流`stdout`和`stderr`(可能是从第三方C代码编写的)。

systemsleep(s::Real)

暂停执行"s"秒。 此函数不会将数据输出到Julia调度程序,从而阻塞在空闲期间运行的Julia执行线程。

另请参阅说明 '睡眠'

mkfifo(path::AbstractString, [mode::Integer]) -> path

在"路径"中创建一个特殊的FIFO文件(命名为管道)。 成功后,它会返回"路径"。

"mkfifo"仅在Unix平台上受支持。

兼容性:Julia1.11

mkfifo要求Julia的版本不低于1.11。