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 36 37 38
|
#define _GNU_SOURCE
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include "fdleak.h"
static int
openfile (const char *f)
{
return creat (f, O_RDWR);
}
static void
closefile (const char *f, int fd)
{
close (fd);
unlink (f);
}
int main ()
{
CLOSE_INHERITED_FDS;
const char *TMPFILE = "file_dclose.tmp";
int fd;
fd = openfile (TMPFILE);
if (fd != -1) {
fprintf(stderr, "close %d\n", fd);
close (fd);
}
fprintf (stderr, "time passes and we close %d again\n", fd);
closefile (TMPFILE, fd);
return 0;
}
|