#include #include #include #include #include #include #include int main(int argc, char **argv) { int fd, rc; char *name; if (argc > 1) name = argv[1]; else name = "/var/tmp/foo"; fd = open(name, O_CREAT|O_RDWR, S_IRWXU); if (fd == -1) { fprintf(stderr, "failed (%s) to open %s\n", strerror(errno), name); return errno; } rc = ftruncate(fd, 0); if (rc == -1) { fprintf(stderr, "failed (%s) to ftruncate\n", strerror(errno)); } rc = truncate(name, 0); if (rc == -1) { fprintf(stderr, "failed (%s) to truncate %s\n", strerror(errno), name); } rc = unlink(name); if (rc == -1) { fprintf(stderr, "failed (%s) to unlink %s\n", strerror(errno), name); } rc = ftruncate(fd, 0); if (rc == -1) { fprintf(stderr, "failed (%s) to post unlink ftruncate\n", strerror(errno)); } rc = truncate(name, 0); if (rc == -1) { fprintf(stderr, "failed (%s) to post unlink truncate %s\n", strerror(errno), name); } close(fd); return 0; }