Class UnixFDList

All Implemented Interfaces:
PointerInterface

public class UnixFDList extends Object
A #GUnixFDList contains a list of file descriptors. It owns the file
descriptors that it contains, closing them when finalized.

It may be wrapped in a #GUnixFDMessage and sent over a #GSocket in
the %G_SOCKET_FAMILY_UNIX family by using g_socket_send_message()
and received using g_socket_receive_message().

Before 2.74, `<gio/gunixfdlist.h>` belonged to the UNIX-specific GIO
interfaces, thus you had to use the `gio-unix-2.0.pc` pkg-config file when
using it.

Since 2.74, the API is available for Windows.

https://docs.gtk.org/gio/class.UnixFDList.html

  • Constructor Details

    • UnixFDList

      public UnixFDList(PointerContainer pointer)
    • UnixFDList

      public UnixFDList()
      Creates a new #GUnixFDList containing no file descriptors.
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • append

      public int append(int fd) throws AllocationError
      Adds a file descriptor to @list.

      The file descriptor is duplicated using dup(). You keep your copy
      of the descriptor and the copy contained in @list will be closed
      when @list is finalized.

      A possible cause of failure is exceeding the per-process or
      system-wide file descriptor limit.

      The index of the file descriptor in the list is returned. If you use
      this index with g_unix_fd_list_get() then you will receive back a
      duplicated copy of the same file descriptor.
      Parameters:
      fd - a valid open file descriptor
      Returns:
      the index of the appended fd in case of success, else -1 (and @error is set)
      Throws:
      AllocationError
    • get

      public int get(int index_) throws AllocationError
      Gets a file descriptor out of @list.

      @index_ specifies the index of the file descriptor to get. It is a
      programmer error for @index_ to be out of range; see
      g_unix_fd_list_get_length().

      The file descriptor is duplicated using dup() and set as
      close-on-exec before being returned. You must call close() on it
      when you are done.

      A possible cause of failure is exceeding the per-process or
      system-wide file descriptor limit.
      Parameters:
      index_ - the index into the list
      Returns:
      the file descriptor, or -1 in case of error
      Throws:
      AllocationError
    • getLength

      public int getLength()
      Gets the length of @list (ie: the number of file descriptors
      contained within).
      Returns:
      the length of @list
    • stealFds

      public Int stealFds(@Nullable Int length)
      Returns the array of file descriptors that is contained in this
      object.

      After this call, the descriptors are no longer contained in
      @list. Further calls will return an empty list (unless more
      descriptors have been added).

      The return result of this function must be freed with g_free().
      The caller is also responsible for closing all of the file
      descriptors. The file descriptors in the array are set to
      close-on-exec.

      If @length is non-%NULL then it is set to the number of file
      descriptors in the returned array. The returned array is also
      terminated with -1.

      This function never returns %NULL. In case there are no file
      descriptors contained in @list, an empty array is returned.
      Parameters:
      length - pointer to the length of the returned array, or %NULL
      Returns:
      an array of file descriptors
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()