aboutsummaryrefslogtreecommitdiff
path: root/tests/unistd/unlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unistd/unlink.c')
-rw-r--r--tests/unistd/unlink.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/unistd/unlink.c b/tests/unistd/unlink.c
new file mode 100644
index 00000000..3f7d84b6
--- /dev/null
+++ b/tests/unistd/unlink.c
@@ -0,0 +1,35 @@
+#include <stdio.h>
+#include <errno.h>
+#include <unistd.h>
+
+int main() {
+ char* files[] = {"/device", "/file", "/file-forbidden", "/noexist"};
+ char* folders[] = {"/empty", "/empty-forbidden", "/full"};
+ int i;
+
+ for (i = 0; i < sizeof files / sizeof files[0]; i++) {
+ printf("access(%s) before: %d\n", files[i], access(files[i], F_OK));
+ rmdir(files[i]);
+ printf("errno: %d\n", errno);
+ errno = 0;
+ printf("access(%s) after rmdir: %d\n", files[i], access(files[i], F_OK));
+ unlink(files[i]);
+ printf("errno: %d\n", errno);
+ errno = 0;
+ printf("access(%s) after unlink: %d\n\n", files[i], access(files[i], F_OK));
+ }
+
+ for (i = 0; i < sizeof folders / sizeof folders[0]; i++) {
+ printf("access(%s) before: %d\n", folders[i], access(folders[i], F_OK));
+ unlink(folders[i]);
+ printf("errno: %d\n", errno);
+ errno = 0;
+ printf("access(%s) after unlink: %d\n", folders[i], access(folders[i], F_OK));
+ rmdir(folders[i]);
+ printf("errno: %d\n", errno);
+ errno = 0;
+ printf("access(%s) after rmdir: %d\n\n", folders[i], access(folders[i], F_OK));
+ }
+
+ return 0;
+}