annotate src/flac-1.2.1/include/share/grabbag/file.h @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 05aa0afa9217
children
rev   line source
Chris@1 1 /* grabbag - Convenience lib for various routines common to several tools
Chris@1 2 * Copyright (C) 2002,2003,2004,2005,2006,2007 Josh Coalson
Chris@1 3 *
Chris@1 4 * This library is free software; you can redistribute it and/or
Chris@1 5 * modify it under the terms of the GNU Lesser General Public
Chris@1 6 * License as published by the Free Software Foundation; either
Chris@1 7 * version 2.1 of the License, or (at your option) any later version.
Chris@1 8 *
Chris@1 9 * This library is distributed in the hope that it will be useful,
Chris@1 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@1 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Chris@1 12 * Lesser General Public License for more details.
Chris@1 13 *
Chris@1 14 * You should have received a copy of the GNU Lesser General Public
Chris@1 15 * License along with this library; if not, write to the Free Software
Chris@1 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Chris@1 17 */
Chris@1 18
Chris@1 19 /* Convenience routines for manipulating files */
Chris@1 20
Chris@1 21 /* This .h cannot be included by itself; #include "share/grabbag.h" instead. */
Chris@1 22
Chris@1 23 #ifndef GRABAG__FILE_H
Chris@1 24 #define GRABAG__FILE_H
Chris@1 25
Chris@1 26 /* needed because of off_t */
Chris@1 27 #if HAVE_CONFIG_H
Chris@1 28 # include <config.h>
Chris@1 29 #endif
Chris@1 30
Chris@1 31 #include <sys/types.h> /* for off_t */
Chris@1 32 #include <stdio.h> /* for FILE */
Chris@1 33 #include "FLAC/ordinals.h"
Chris@1 34
Chris@1 35 #ifdef __cplusplus
Chris@1 36 extern "C" {
Chris@1 37 #endif
Chris@1 38
Chris@1 39 void grabbag__file_copy_metadata(const char *srcpath, const char *destpath);
Chris@1 40 off_t grabbag__file_get_filesize(const char *srcpath);
Chris@1 41 const char *grabbag__file_get_basename(const char *srcpath);
Chris@1 42
Chris@1 43 /* read_only == false means "make file writable by user"
Chris@1 44 * read_only == true means "make file read-only for everyone"
Chris@1 45 */
Chris@1 46 FLAC__bool grabbag__file_change_stats(const char *filename, FLAC__bool read_only);
Chris@1 47
Chris@1 48 /* returns true iff stat() succeeds for both files and they have the same device and inode. */
Chris@1 49 /* on windows, uses GetFileInformationByHandle() to compare */
Chris@1 50 FLAC__bool grabbag__file_are_same(const char *f1, const char *f2);
Chris@1 51
Chris@1 52 /* attempts to make writable before unlinking */
Chris@1 53 FLAC__bool grabbag__file_remove_file(const char *filename);
Chris@1 54
Chris@1 55 /* these will forcibly set stdin/stdout to binary mode (for OSes that require it) */
Chris@1 56 FILE *grabbag__file_get_binary_stdin(void);
Chris@1 57 FILE *grabbag__file_get_binary_stdout(void);
Chris@1 58
Chris@1 59 #ifdef __cplusplus
Chris@1 60 }
Chris@1 61 #endif
Chris@1 62
Chris@1 63 #endif