Commit a9c986f9 authored by Martin Mareš's avatar Martin Mareš

Added tracked_fopen() which is a fopen registered in resource database.

Will be used for log files.
parent 34350a52
......@@ -50,6 +50,51 @@ random_u32(void)
return (rand_low & 0xffff) | ((rand_high & 0xffff) << 16);
}
/*
* Tracked Files
*/
struct rfile {
resource r;
FILE *f;
};
static void
rf_free(resource *r)
{
struct rfile *a = (struct rfile *) r;
fclose(a->f);
}
static void
rf_dump(resource *r)
{
struct rfile *a = (struct rfile *) r;
debug("(FILE *%p)\n", a->f);
}
static struct resclass rf_class = {
"FILE",
sizeof(struct rfile),
rf_free,
rf_dump
};
void *
rfopen(pool *p, char *name, char *mode)
{
FILE *f = fopen(name, mode);
if (f)
{
struct rfile *r = ralloc(p, &rf_class);
r->f = f;
}
return f;
}
/*
* Timers
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment