summaryrefslogtreecommitdiff
path: root/contrib/getdents_c/getdents.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/getdents_c/getdents.c')
-rw-r--r--contrib/getdents_c/getdents.c39
1 files changed, 0 insertions, 39 deletions
diff --git a/contrib/getdents_c/getdents.c b/contrib/getdents_c/getdents.c
deleted file mode 100644
index 98c2346..0000000
--- a/contrib/getdents_c/getdents.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// See ../getdents/getdents.go for some info on why
-// this exists.
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <sys/stat.h>
-#include <sys/syscall.h>
-#include <errno.h>
-
-int main(int argc, char *argv[])
-{
- if(argc < 2) {
- printf("Usage: %s PATH\n", argv[0]);
- printf("Run getdents(2) on PATH\n");
- exit(1);
- }
-
- const char *path = argv[1];
- int fd = open(path, O_RDONLY);
- if (fd == -1) {
- perror("open");
- exit(1);
- }
-
- char tmp[10000];
- int sum = 0;
- for ( ; ; ) {
- int n = syscall(SYS_getdents64, fd, tmp, sizeof(tmp));
- printf("getdents64 fd%d: n=%d, errno=%d\n", fd, n, errno);
- if (n <= 0) {
- printf("total %d bytes\n", sum);
- break;
- }
- sum += n;
- }
-}