aboutsummaryrefslogtreecommitdiff
path: root/tests/unistd/unlink.c
blob: 3f7d84b62691ba100203b671ed6639127b720965 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;
}