2000-10-09 18:24:57 +02:00
|
|
|
/* gfileutils.h - File utility functions
|
|
|
|
*
|
|
|
|
* Copyright 2000 Red Hat, Inc.
|
|
|
|
*
|
|
|
|
* GLib is free software; you can redistribute it and/or modify it
|
|
|
|
* under the terms of the GNU Lesser General Public License as
|
|
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* GLib is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with GLib; see the file COPYING.LIB. If not,
|
|
|
|
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
* Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 13:52:07 +02:00
|
|
|
#ifndef __G_FILEUTILS_H__
|
|
|
|
#define __G_FILEUTILS_H__
|
2000-10-09 18:24:57 +02:00
|
|
|
|
2001-06-26 18:01:21 +02:00
|
|
|
#include <glib/gerror.h>
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 13:52:07 +02:00
|
|
|
|
|
|
|
G_BEGIN_DECLS
|
2000-10-09 18:24:57 +02:00
|
|
|
|
|
|
|
#define G_FILE_ERROR g_file_error_quark ()
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
G_FILE_ERROR_EXIST,
|
|
|
|
G_FILE_ERROR_ISDIR,
|
|
|
|
G_FILE_ERROR_ACCES,
|
|
|
|
G_FILE_ERROR_NAMETOOLONG,
|
|
|
|
G_FILE_ERROR_NOENT,
|
|
|
|
G_FILE_ERROR_NOTDIR,
|
|
|
|
G_FILE_ERROR_NXIO,
|
|
|
|
G_FILE_ERROR_NODEV,
|
|
|
|
G_FILE_ERROR_ROFS,
|
|
|
|
G_FILE_ERROR_TXTBSY,
|
|
|
|
G_FILE_ERROR_FAULT,
|
|
|
|
G_FILE_ERROR_LOOP,
|
|
|
|
G_FILE_ERROR_NOSPC,
|
|
|
|
G_FILE_ERROR_NOMEM,
|
|
|
|
G_FILE_ERROR_MFILE,
|
|
|
|
G_FILE_ERROR_NFILE,
|
|
|
|
G_FILE_ERROR_BADF,
|
|
|
|
G_FILE_ERROR_INVAL,
|
|
|
|
G_FILE_ERROR_PIPE,
|
|
|
|
G_FILE_ERROR_AGAIN,
|
|
|
|
G_FILE_ERROR_INTR,
|
|
|
|
G_FILE_ERROR_IO,
|
|
|
|
G_FILE_ERROR_PERM,
|
|
|
|
G_FILE_ERROR_FAILED
|
|
|
|
} GFileError;
|
|
|
|
|
|
|
|
/* For backward-compat reasons, these are synced to an old
|
|
|
|
* anonymous enum in libgnome. But don't use that enum
|
|
|
|
* in new code.
|
|
|
|
*/
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
G_FILE_TEST_IS_REGULAR = 1 << 0,
|
|
|
|
G_FILE_TEST_IS_SYMLINK = 1 << 1,
|
|
|
|
G_FILE_TEST_IS_DIR = 1 << 2,
|
|
|
|
G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
|
2000-11-05 17:38:16 +01:00
|
|
|
G_FILE_TEST_EXISTS = 1 << 4
|
2000-10-09 18:24:57 +02:00
|
|
|
} GFileTest;
|
|
|
|
|
|
|
|
GQuark g_file_error_quark (void);
|
|
|
|
/* So other code can generate a GFileError */
|
|
|
|
GFileError g_file_error_from_errno (gint err_no);
|
|
|
|
|
|
|
|
gboolean g_file_test (const gchar *filename,
|
|
|
|
GFileTest test);
|
|
|
|
gboolean g_file_get_contents (const gchar *filename,
|
|
|
|
gchar **contents,
|
Changes for 64-bit cleanliness, loosely based on patch from Mark Murnane.
Wed Jun 20 12:00:54 2001 Owen Taylor <otaylor@redhat.com>
Changes for 64-bit cleanliness, loosely based on patch
from Mark Murnane.
* gconvert.c (g_convert/g_convert_with_fallback): Remove
workarounds for since-fixed GNU libc bugs. Minor
doc fix.
* gconvert.[ch]: Change gint to gsize/gssize as
appropriate.
* gconvert.c (g_locale/filename_to/from_utf8): Fix incorrect
computation of bytes_read / bytes_written.
* gfileutils.[ch] (g_file_get_contents): Make length
out parameter 'gsize *len'.
* ghook.c (g_hook_compare_ids): Don't compare a
and b as 'a - b'.
* gmacros.h (GSIZE_TO_POINTER): Add GPOINTER_TO_SIZE,
GSIZE_TO_POINTER.
* gmain.c (g_timeout_prepare): Rewrite to avoid
overflows. (Fixes bug when system clock skews
backwards more than 24 days.)
* gmarkup.[ch]: Make lengths passed to callbacks
gsize, length for g_markup_parse-context_parse(),
g_markup_escape_text() gssize.
* gmessages.[ch] (g_printf_string_upper_bound): Change
return value to gsize.
* gmessages.c (printf_string_upper_bound): Remove
a ridiculous use of 'inline' on a 300 line function.
* gstring.[ch]: Represent size of string as a gsize,
not gint. Make parameters to functions take gsize,
or gssize where -1 is allowed.
* gstring.c (g_string_erase): Make
g_string_erase (string, pos, -1) a synonym for
g_string_truncate for consistency with other G*
APIs.
* gstrfuncs.[ch]: Make all functions taking a string
length, take a gsize, or gssize if -1 is allowed.
(g_strstr_len, g_strrstr_len). Also fix some boundary
conditions in g_str[r]str[_len].
* gutf8.c tests/unicode-encoding.c: Make parameters that
are byte lengths gsize, gssize as appropriate. Make
character offsets, other counts, glong.
* gasyncqueue.c gcompletion.c
timeloop.c timeloop-basic.c gutils.c gspawn.c.
Small 64 bit cleanliness fixups.
* glist.c (g_list_sort2, g_list_sort_real): Fix functions
that should have been static.
* gdate.c (g_date_fill_parse_tokens): Fix extra
declaration that was shadowing another.
* tests/module-test.c: Include string.h
Mon Jun 18 15:43:29 2001 Owen Taylor <otaylor@redhat.com>
* gutf8.c (g_get_charset): Make argument
G_CONST_RETURN char **.
2001-06-23 15:55:09 +02:00
|
|
|
gsize *length,
|
2000-10-09 18:24:57 +02:00
|
|
|
GError **error);
|
2003-07-30 00:31:40 +02:00
|
|
|
gchar *g_file_read_link (const gchar *filename,
|
2003-07-28 21:49:47 +02:00
|
|
|
GError **error);
|
2000-10-09 18:24:57 +02:00
|
|
|
|
2000-10-30 23:06:22 +01:00
|
|
|
/* Wrapper / workalike for mkstemp() */
|
Use gchar, gint, gsize instead of char, int, size_t in the interface for
2003-07-29 Matthias Clasen <maclas@gmx.de>
* glib/gqsort.[hc] (g_qsort_with_data):
* glib/gconvert.[hc] (g_filename_to_uri, g_filename_from_uri):
* glib/gfileutils.[hc] (g_mkstemp, g_file_open_tmp): Use gchar, gint, gsize instead of char, int, size_t
in the interface for consistency. (#118567)
2003-07-29 20:59:23 +02:00
|
|
|
gint g_mkstemp (gchar *tmpl);
|
2000-11-11 14:46:15 +01:00
|
|
|
|
|
|
|
/* Wrapper for g_mkstemp */
|
Use gchar, gint, gsize instead of char, int, size_t in the interface for
2003-07-29 Matthias Clasen <maclas@gmx.de>
* glib/gqsort.[hc] (g_qsort_with_data):
* glib/gconvert.[hc] (g_filename_to_uri, g_filename_from_uri):
* glib/gfileutils.[hc] (g_mkstemp, g_file_open_tmp): Use gchar, gint, gsize instead of char, int, size_t
in the interface for consistency. (#118567)
2003-07-29 20:59:23 +02:00
|
|
|
gint g_file_open_tmp (const gchar *tmpl,
|
|
|
|
gchar **name_used,
|
2000-11-11 14:46:15 +01:00
|
|
|
GError **error);
|
2000-10-09 18:24:57 +02:00
|
|
|
|
2001-09-10 15:30:41 +02:00
|
|
|
gchar *g_build_path (const gchar *separator,
|
|
|
|
const gchar *first_element,
|
|
|
|
...);
|
|
|
|
gchar *g_build_filename (const gchar *first_element,
|
|
|
|
...);
|
|
|
|
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 13:52:07 +02:00
|
|
|
G_END_DECLS
|
2000-10-09 18:24:57 +02:00
|
|
|
|
Split glib.h into many header files mostly according to the resp.
2000-10-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
into many header files mostly according to the resp. *.c-files.
* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
__END_DECLS.
* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
gunicode.h, : Changed guard-macro names to something more
consistent.
* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 13:52:07 +02:00
|
|
|
#endif /* __G_FILEUTILS_H__ */
|
2000-10-09 18:24:57 +02:00
|
|
|
|
|
|
|
|