/* * Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc. * * This file is part of Jam - see jam.c for Copyright information. */ /* This file is ALSO: * Copyright 2001-2004 David Abrahams. * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) */ /* * filesys.h - OS specific file routines */ #ifndef FILESYS_DWA20011025_H # define FILESYS_DWA20011025_H # include "pathsys.h" #include "hash.h" #include "lists.h" typedef void (*scanback)( void *closure, char *file, int found, time_t t ); void file_dirscan( char *dir, scanback func, void *closure ); void file_archscan( char *arch, scanback func, void *closure ); int file_time( char *filename, time_t *time ); void file_build1(PATHNAME *f, string* file) ; int file_is_file(char* filename); int file_mkdir(char *pathname); typedef struct file_info_t file_info_t ; struct file_info_t { char * name; short is_file; short is_dir; unsigned long size; time_t time; LIST * files; }; /* Creates a pointer to information about file 'filename', creating it as * necessary. If created, the structure will be default initialized. */ file_info_t * file_info( char * filename ); /* Returns information about a file, queries the OS if needed. */ file_info_t * file_query( char * filename ); void file_done(); /* Marks a path/file to be removed when jam exits. */ void file_remove_atexit( const char * path ); #endif