since: 2.6


g_open (
  const gchar* filename,
  int flags,
  int mode


A wrapper for the POSIX open() function. The open() function is used to convert a pathname into a file descriptor.

On POSIX systems file descriptors are implemented by the operating system. On Windows, it’s the C library that implements open() and file descriptors. The actual Win32 API for opening files is quite different, see MSDN documentation for CreateFile(). The Win32 API uses file handles, which are more randomish integers, not small integers like file descriptors.

Because file descriptors are specific to the C library on Windows, the file descriptor returned by this function makes sense only to functions in the same C library. Thus if the GLib-using code uses a different C library than GLib does, the file descriptor returned by this function cannot be passed to C library functions like write() or read().

See your C library manual for more details about open().

Available since: 2.6



Type: const gchar*

A pathname in the GLib file name encoding (UTF-8 on Windows)

The data is owned by the caller of the function.
The value is a file system path, using the OS encoding.

Type: int

As in open()


Type: int

As in open()

Return value

Type: int

A new file descriptor, or -1 if an error occurred. The return value can be used exactly like the return value from open().