FFI::memcpy
将一个内存区域复制到另一个内存区域
PHP 7.4.0 及以上版本
<h2>函数说明</h2>
<h2>函数语法</h2>
<p>FFI::memcpy( string $dst, string $src, int $length ): int
$ffi = FFI::cdef(
"void *memcpy(void *dst, const void *src, size_t n);",
"libc.so.6"
);
$src = "Hello, world!";
$dst = FFI::new("char[50]"); // 分配内存给目标
$ffi->memcpy($dst, $src, strlen($src) + 1); // 复制字符串
echo FFI::string($dst); // 输出复制后的字符串
1. 首先通过 FFI::cdef 函数声明 C 函数 memcpy,该函数位于 libc 库中。
2. 使用 FFI::new 分配了一个目标内存区域,并将源字符串设置为 "Hello, world!"。
3. 然后调用 memcpy 函数将源数据复制到目标内存区域。
4. 最后,使用 FFI::string 函数打印复制后的字符串。