Trait gio::prelude::UnixFDListExtManual
source · pub trait UnixFDListExtManual: Sized {
// Required methods
fn append<T: AsRawFd>(&self, fd: T) -> Result<i32, Error>;
fn get(&self, index_: i32) -> Result<RawFd, Error>;
fn peek_fds(&self) -> Vec<RawFd>;
fn steal_fds(&self) -> Vec<RawFd>;
}
Required Methods§
sourcefn append<T: AsRawFd>(&self, fd: T) -> Result<i32, Error>
fn append<T: AsRawFd>(&self, fd: T) -> Result<i32, Error>
Adds a file descriptor to self
.
The file descriptor is duplicated using dup()
. You keep your copy
of the descriptor and the copy contained in self
will be closed
when self
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 UnixFDListExtManual::get()
then you will receive back a
duplicated copy of the same file descriptor.
fd
a valid open file descriptor
Returns
the index of the appended fd in case of success, else -1
(and error
is set)
sourcefn get(&self, index_: i32) -> Result<RawFd, Error>
fn get(&self, index_: i32) -> Result<RawFd, Error>
Gets a file descriptor out of self
.
index_
specifies the index of the file descriptor to get. It is a
programmer error for index_
to be out of range; see
UnixFDListExt::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.
index_
the index into the list
Returns
the file descriptor, or -1 in case of error
sourcefn peek_fds(&self) -> Vec<RawFd>
fn peek_fds(&self) -> Vec<RawFd>
Returns the array of file descriptors that is contained in this object.
After this call, the descriptors remain the property of self
. The
caller must not close them and must not free the array. The array is
valid only until self
is changed in any way.
If length
is non-None
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 None
. In case there are no file
descriptors contained in self
, an empty array is returned.
Returns
an array of file descriptors
sourcefn steal_fds(&self) -> Vec<RawFd>
fn steal_fds(&self) -> Vec<RawFd>
Returns the array of file descriptors that is contained in this object.
After this call, the descriptors are no longer contained in
self
. 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-None
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 None
. In case there are no file
descriptors contained in self
, an empty array is returned.
Returns
an array of file descriptors