1 /* gfileutils.h - File utility functions 2 * 3 * Copyright 2000 Red Hat, Inc. 4 * 5 * GLib is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU Lesser General Public License as 7 * published by the Free Software Foundation; either version 2 of the 8 * License, or (at your option) any later version. 9 * 10 * GLib is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with GLib; see the file COPYING.LIB. If not, 17 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 * Boston, MA 02111-1307, USA. 19 */ 20 21 #if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) 22 #error "Only <glib.h> can be included directly." 23 #endif 24 25 #ifndef __G_FILEUTILS_H__ 26 #define __G_FILEUTILS_H__ 27 28 #include <glib/gerror.h> 29 30 G_BEGIN_DECLS 31 32 #define G_FILE_ERROR g_file_error_quark () 33 34 typedef enum 35 { 36 G_FILE_ERROR_EXIST, 37 G_FILE_ERROR_ISDIR, 38 G_FILE_ERROR_ACCES, 39 G_FILE_ERROR_NAMETOOLONG, 40 G_FILE_ERROR_NOENT, 41 G_FILE_ERROR_NOTDIR, 42 G_FILE_ERROR_NXIO, 43 G_FILE_ERROR_NODEV, 44 G_FILE_ERROR_ROFS, 45 G_FILE_ERROR_TXTBSY, 46 G_FILE_ERROR_FAULT, 47 G_FILE_ERROR_LOOP, 48 G_FILE_ERROR_NOSPC, 49 G_FILE_ERROR_NOMEM, 50 G_FILE_ERROR_MFILE, 51 G_FILE_ERROR_NFILE, 52 G_FILE_ERROR_BADF, 53 G_FILE_ERROR_INVAL, 54 G_FILE_ERROR_PIPE, 55 G_FILE_ERROR_AGAIN, 56 G_FILE_ERROR_INTR, 57 G_FILE_ERROR_IO, 58 G_FILE_ERROR_PERM, 59 G_FILE_ERROR_NOSYS, 60 G_FILE_ERROR_FAILED 61 } GFileError; 62 63 /* For backward-compat reasons, these are synced to an old 64 * anonymous enum in libgnome. But don't use that enum 65 * in new code. 66 */ 67 typedef enum 68 { 69 G_FILE_TEST_IS_REGULAR = 1 << 0, 70 G_FILE_TEST_IS_SYMLINK = 1 << 1, 71 G_FILE_TEST_IS_DIR = 1 << 2, 72 G_FILE_TEST_IS_EXECUTABLE = 1 << 3, 73 G_FILE_TEST_EXISTS = 1 << 4 74 } GFileTest; 75 76 GQuark g_file_error_quark (void); 77 /* So other code can generate a GFileError */ 78 GFileError g_file_error_from_errno (gint err_no); 79 80 #ifdef G_OS_WIN32 81 #define g_file_test g_file_test_utf8 82 #define g_file_get_contents g_file_get_contents_utf8 83 #define g_mkstemp g_mkstemp_utf8 84 #define g_file_open_tmp g_file_open_tmp_utf8 85 #endif 86 87 gboolean g_file_test (const gchar *filename, 88 GFileTest test); 89 gboolean g_file_get_contents (const gchar *filename, 90 gchar **contents, 91 gsize *length, 92 GError **error); 93 gboolean g_file_set_contents (const gchar *filename, 94 const gchar *contents, 95 gssize length, 96 GError **error); 97 gchar *g_file_read_link (const gchar *filename, 98 GError **error); 99 100 /* Wrapper / workalike for mkstemp() */ 101 gint g_mkstemp (gchar *tmpl); 102 103 /* Wrapper for g_mkstemp */ 104 gint g_file_open_tmp (const gchar *tmpl, 105 gchar **name_used, 106 GError **error); 107 108 char *g_format_size_for_display (goffset size); 109 110 gchar *g_build_path (const gchar *separator, 111 const gchar *first_element, 112 ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; 113 gchar *g_build_pathv (const gchar *separator, 114 gchar **args) G_GNUC_MALLOC; 115 116 gchar *g_build_filename (const gchar *first_element, 117 ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; 118 gchar *g_build_filenamev (gchar **args) G_GNUC_MALLOC; 119 120 int g_mkdir_with_parents (const gchar *pathname, 121 int mode); 122 123 G_END_DECLS 124 125 #endif /* __G_FILEUTILS_H__ */ 126