aboutgitcodelistschat:MatrixIRC
path: root/demo/open_by_handle_at.c
diff options
context:
space:
mode:
Diffstat (limited to 'demo/open_by_handle_at.c')
-rw-r--r--demo/open_by_handle_at.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/demo/open_by_handle_at.c b/demo/open_by_handle_at.c
new file mode 100644
index 0000000..1f48eca
--- /dev/null
+++ b/demo/open_by_handle_at.c
@@ -0,0 +1,22 @@
+#define _GNU_SOURCE
+#include <sys/stat.h>
+#include <sys/xattr.h>
+#include <fcntl.h>
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+
+int main(int argc, char **argv)
+{
+ struct {
+ struct file_handle f;
+ unsigned char h[MAX_HANDLE_SZ];
+ } handle = { .f.handle_bytes = MAX_HANDLE_SZ };
+ int mount_fd, fd;
+ char buf[BUFSIZ];
+
+ name_to_handle_at(AT_FDCWD, argv[1], &handle.f, &mount_fd, 0);
+ fd = open_by_handle_at(mount_fd, &handle.f, 0);
+ read(fd, buf, BUFSIZ);
+ fprintf(stdout, "%s", buf);
+}