函数

GLibMappedFilenew

自:2.8

声明 [源]

GMappedFile*
g_mapped_file_new (
  const gchar* filename,
  gboolean writable,
  GError** error
)

描述 [源]

将文件映射到内存中。在 UNIX 上,这是使用 mmap() 函数。

如果 writableTRUE,则映射的缓冲区可以被修改,否则修改映射的缓冲区是错误的。对缓冲区的修改对其他映射相同文件的进程不可见,并且不会写回文件。

请注意,底层文件的修改可能会影响 GMappedFile 的内容。因此,只有当文件不会被修改,或者所有对文件的修改都是原子性的(例如使用 g_file_set_contents())时,才应使用映射。

如果 filename 是空普通文件的名称,则函数将成功返回空的 GMappedFile。在其他情况下,如大小为0(例如设备文件,如 /dev/null),error 将设置为 GFileErrorG_FILE_ERROR_INVAL

自:2.8

参数

filename

类型: const gchar%

要加载数据的文件路径,使用 GLib 文件名编码。

数据归调用该函数的所有者所有。
这是一个平台本机字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。
writable

类型: gboolean

映射是否应该是可写的。

error

类型: GError **

一个可恢复错误的返回位置。

该参数可以为 NULL
如果返回位置不为 NULL,则您必须将其初始化为 NULL GError*
如果没有错误,函数将保留初始化到 NULL
如果发生错误,则将设置参数为一个新的 GError;调用者将保留数据的所有权,并负责释放它。

返回值

类型: GMappedFile

一个新分配的 GMappedFile,必须使用 g_mapped_file_unref() 释放,或者在映射失败时返回 NULL

该函数的调用者保留数据的所有权,并负责释放它。