williamr@2: /* gfileutils.h - File utility functions williamr@2: * williamr@2: * Copyright 2000 Red Hat, Inc. williamr@2: * Portions copyright (c) 2006 Nokia Corporation. All rights reserved. williamr@2: * williamr@2: * GLib is free software; you can redistribute it and/or modify it williamr@2: * under the terms of the GNU Lesser General Public License as williamr@2: * published by the Free Software Foundation; either version 2 of the williamr@2: * License, or (at your option) any later version. williamr@2: * williamr@2: * GLib is distributed in the hope that it will be useful, williamr@2: * but WITHOUT ANY WARRANTY; without even the implied warranty of williamr@2: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU williamr@2: * Lesser General Public License for more details. williamr@2: * williamr@2: * You should have received a copy of the GNU Lesser General Public williamr@2: * License along with GLib; see the file COPYING.LIB. If not, williamr@2: * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, williamr@2: * Boston, MA 02111-1307, USA. williamr@2: */ williamr@2: williamr@2: #ifndef __G_FILEUTILS_H__ williamr@2: #define __G_FILEUTILS_H__ williamr@2: williamr@2: #include <_ansi.h> williamr@2: #include williamr@2: williamr@2: G_BEGIN_DECLS williamr@2: williamr@2: #define G_FILE_ERROR g_file_error_quark () williamr@2: williamr@2: typedef enum williamr@2: { williamr@2: G_FILE_ERROR_EXIST, williamr@2: G_FILE_ERROR_ISDIR, williamr@2: G_FILE_ERROR_ACCES, williamr@2: G_FILE_ERROR_NAMETOOLONG, williamr@2: G_FILE_ERROR_NOENT, williamr@2: G_FILE_ERROR_NOTDIR, williamr@2: G_FILE_ERROR_NXIO, williamr@2: G_FILE_ERROR_NODEV, williamr@2: G_FILE_ERROR_ROFS, williamr@2: G_FILE_ERROR_TXTBSY, williamr@2: G_FILE_ERROR_FAULT, williamr@2: G_FILE_ERROR_LOOP, williamr@2: G_FILE_ERROR_NOSPC, williamr@2: G_FILE_ERROR_NOMEM, williamr@2: G_FILE_ERROR_MFILE, williamr@2: G_FILE_ERROR_NFILE, williamr@2: G_FILE_ERROR_BADF, williamr@2: G_FILE_ERROR_INVAL, williamr@2: G_FILE_ERROR_PIPE, williamr@2: G_FILE_ERROR_AGAIN, williamr@2: G_FILE_ERROR_INTR, williamr@2: G_FILE_ERROR_IO, williamr@2: G_FILE_ERROR_PERM, williamr@2: G_FILE_ERROR_NOSYS, williamr@2: G_FILE_ERROR_FAILED williamr@2: } GFileError; williamr@2: williamr@2: /* For backward-compat reasons, these are synced to an old williamr@2: * anonymous enum in libgnome. But don't use that enum williamr@2: * in new code. williamr@2: */ williamr@2: typedef enum williamr@2: { williamr@2: G_FILE_TEST_IS_REGULAR = 1 << 0, williamr@2: G_FILE_TEST_IS_SYMLINK = 1 << 1, williamr@2: G_FILE_TEST_IS_DIR = 1 << 2, williamr@2: G_FILE_TEST_IS_EXECUTABLE = 1 << 3, williamr@2: G_FILE_TEST_EXISTS = 1 << 4 williamr@2: } GFileTest; williamr@2: williamr@2: IMPORT_C GQuark g_file_error_quark (void); williamr@2: /* So other code can generate a GFileError */ williamr@2: IMPORT_C GFileError g_file_error_from_errno (gint err_no); williamr@2: williamr@2: #ifdef G_OS_WIN32 williamr@2: #define g_file_test g_file_test_utf8 williamr@2: #define g_file_get_contents g_file_get_contents_utf8 williamr@2: #define g_mkstemp g_mkstemp_utf8 williamr@2: #define g_file_open_tmp g_file_open_tmp_utf8 williamr@2: #endif williamr@2: williamr@2: IMPORT_C gboolean g_file_test (const gchar *filename, williamr@2: GFileTest test); williamr@2: IMPORT_C gboolean g_file_get_contents (const gchar *filename, williamr@2: gchar **contents, williamr@2: gsize *length, williamr@2: GError **error); williamr@2: IMPORT_C gboolean g_file_set_contents (const gchar *filename, williamr@2: const gchar *contents, williamr@2: gssize length, williamr@2: GError **error); williamr@2: IMPORT_C gchar *g_file_read_link (const gchar *filename, williamr@2: GError **error); williamr@2: williamr@2: /* Wrapper / workalike for mkstemp() */ williamr@2: IMPORT_C gint g_mkstemp (gchar *tmpl); williamr@2: williamr@2: /* Wrapper for g_mkstemp */ williamr@2: IMPORT_C gint g_file_open_tmp (const gchar *tmpl, williamr@2: gchar **name_used, williamr@2: GError **error); williamr@2: williamr@2: IMPORT_C gchar *g_build_path (const gchar *separator, williamr@2: const gchar *first_element, williamr@2: ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; williamr@2: IMPORT_C gchar *g_build_pathv (const gchar *separator, williamr@2: gchar **args) G_GNUC_MALLOC; williamr@2: williamr@2: IMPORT_C gchar *g_build_filename (const gchar *first_element, williamr@2: ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; williamr@2: IMPORT_C gchar *g_build_filenamev (gchar **args) G_GNUC_MALLOC; williamr@2: williamr@2: IMPORT_C int g_mkdir_with_parents (const gchar *pathname, williamr@2: int mode); williamr@2: williamr@2: G_END_DECLS williamr@2: williamr@2: #endif /* __G_FILEUTILS_H__ */