view lib/hash-triple.h @ 12246:b156d2d1b827

freopen-safer: new module * modules/freopen-safer: New module. * m4/stdio-safer.m4 (gl_FREOPEN_SAFER): New macro. * lib/freopen-safer.c (freopen_safer): New file. * lib/stdio-safer.h (freopen_safer): New declaration. * lib/stdio--.h (freopen): New override. * MODULES.html.sh (File stream based Input/Output): Mention it. * doc/posix-functions/freopen.texi (freopen): Mention pitfalls and freopen-safer module. * doc/posix-functions/stderr.texi (stderr): Likewise. * doc/posix-functions/stdin.texi (stdin): Likewise. * doc/posix-functions/stdout.texi (stdout): Likewise. * modules/freopen-safer-tests: New test. * tests/test-reopen-safer.c: New file. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Thu, 05 Nov 2009 15:13:00 -0700
parents f5b68edd82c4
children 6beadb731202
line wrap: on
line source

#ifndef HASH_TRIPLE_H
#define HASH_TRIPLE_H

#include <sys/types.h>
#include <sys/stat.h>
#include <stdbool.h>

/* Describe a just-created or just-renamed destination file.  */
struct F_triple
{
  char *name;
  ino_t st_ino;
  dev_t st_dev;
};

extern size_t triple_hash (void const *x, size_t table_size);
extern size_t triple_hash_no_name (void const *x, size_t table_size);
extern bool triple_compare (void const *x, void const *y);
extern bool triple_compare_ino_str (void const *x, void const *y);
extern void triple_free (void *x);

#endif