.SH NAME
memfd_create \- create an anonymous file
.SH SYNOPSIS
-.B #include <sys/memfd.h>
+.nf
+.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
+.B #include <sys/mman.h>
.PP
.BI "int memfd_create(const char *" name ", unsigned int " flags ");"
.SH DESCRIPTION
The anonymous file will be created in the hugetlbfs filesystem using
huge pages.
See the Linux kernel source file
-.I Documentation/vm/hugetlbpage.txt
+.I Documentation/admin-guide/mm/hugetlbpage.rst
for more information about hugetlbfs.
-The hugetlbfs filesystem does not support file-sealing operations.
-Therefore, specifying both
+.\" commit 47b9012ecdc747f6936395265e677d41e11a31ff
+Specifying both
.B MFD_HUGETLB
and
.B MFD_ALLOW_SEALING
in
.I flags
-is disallowed.
+is supported since Linux 4.16.
.TP
.BR MFD_HUGE_2MB ", " MFD_HUGE_1GB ", " "..."
Used in conjunction with
on systems that support multiple hugetlb page sizes.
Definitions for known
huge page sizes are included in the header file
-.I <sys/memfd.h>.
+.I <linux/memfd.h>.
.IP
For details on encoding huge page sizes not included in the header file,
see the discussion of the similarly named constants in
.SS Program source: t_memfd_create.c
\&
.EX
-#include <sys/memfd.h>
+#define _GNU_SOURCE
+#include <sys/mman.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
.SS Program source: t_get_seals.c
\&
.EX
-#include <sys/memfd.h>
+#define _GNU_SOURCE
+#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>