函数

GLibMappedFilenew_from_fd

自 2.32

声明 [源]

GMappedFile*
g_mapped_file_new_from_fd (
  gint fd,
  gboolean writable,
  GError** error
)

描述 [源]

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

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

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

自 2.32

参数

fd

类型: gint

要加载的文件的文件描述符。

writable

类型: gboolean

映射是否可写。

error

类型: GError **

用于获取 可恢复错误 的返回位置。

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

返回值

类型: GMappedFile

一个新的 GMappedFile,必须使用 g_mapped_file_unref() 取消引用,或者如果映射失败则为 NULL

函数的调用者获取数据的所有权,并负责释放它。