pub struct FileTable { /* private fields */ }Expand description
File descriptor table for a process
Implementations§
Source§impl FileTable
impl FileTable
Sourcepub fn open(&self, file: Arc<File>) -> Result<FileDescriptor, KernelError>
pub fn open(&self, file: Arc<File>) -> Result<FileDescriptor, KernelError>
Open a file and return a file descriptor
Sourcepub fn open_with_flags(
&self,
file: Arc<File>,
cloexec: bool,
) -> Result<FileDescriptor, KernelError>
pub fn open_with_flags( &self, file: Arc<File>, cloexec: bool, ) -> Result<FileDescriptor, KernelError>
Open a file with close-on-exec flag and return a file descriptor
Sourcepub fn get(&self, fd: FileDescriptor) -> Option<Arc<File>>
pub fn get(&self, fd: FileDescriptor) -> Option<Arc<File>>
Get a file by descriptor
Sourcepub fn get_entry(&self, fd: FileDescriptor) -> Option<(Arc<File>, bool)>
pub fn get_entry(&self, fd: FileDescriptor) -> Option<(Arc<File>, bool)>
Get a file entry by descriptor (includes flags)
Sourcepub fn close(&self, fd: FileDescriptor) -> Result<(), KernelError>
pub fn close(&self, fd: FileDescriptor) -> Result<(), KernelError>
Close a file descriptor
Sourcepub fn dup(&self, fd: FileDescriptor) -> Result<FileDescriptor, KernelError>
pub fn dup(&self, fd: FileDescriptor) -> Result<FileDescriptor, KernelError>
Duplicate a file descriptor
Sourcepub fn dup_cloexec(
&self,
fd: FileDescriptor,
) -> Result<FileDescriptor, KernelError>
pub fn dup_cloexec( &self, fd: FileDescriptor, ) -> Result<FileDescriptor, KernelError>
Duplicate a file descriptor with close-on-exec flag
Sourcepub fn dup_at_least(
&self,
fd: FileDescriptor,
min_fd: FileDescriptor,
cloexec: bool,
) -> Result<FileDescriptor, KernelError>
pub fn dup_at_least( &self, fd: FileDescriptor, min_fd: FileDescriptor, cloexec: bool, ) -> Result<FileDescriptor, KernelError>
Duplicate fd to the lowest available fd >= min_fd (for F_DUPFD)
Sourcepub fn dup2(
&self,
old_fd: FileDescriptor,
new_fd: FileDescriptor,
) -> Result<(), KernelError>
pub fn dup2( &self, old_fd: FileDescriptor, new_fd: FileDescriptor, ) -> Result<(), KernelError>
Replace a file descriptor with another
Sourcepub fn dup3(
&self,
old_fd: FileDescriptor,
new_fd: FileDescriptor,
cloexec: bool,
) -> Result<(), KernelError>
pub fn dup3( &self, old_fd: FileDescriptor, new_fd: FileDescriptor, cloexec: bool, ) -> Result<(), KernelError>
Replace a file descriptor with another, setting close-on-exec flag
Sourcepub fn set_cloexec(
&self,
fd: FileDescriptor,
cloexec: bool,
) -> Result<(), KernelError>
pub fn set_cloexec( &self, fd: FileDescriptor, cloexec: bool, ) -> Result<(), KernelError>
Set close-on-exec flag for a file descriptor
Sourcepub fn get_cloexec(&self, fd: FileDescriptor) -> Result<bool, KernelError>
pub fn get_cloexec(&self, fd: FileDescriptor) -> Result<bool, KernelError>
Get close-on-exec flag for a file descriptor
Sourcepub fn close_on_exec(&self)
pub fn close_on_exec(&self)
Close all file descriptors marked with close-on-exec Called during exec() system call
Sourcepub fn count_open(&self) -> usize
pub fn count_open(&self) -> usize
Get the number of open file descriptors
Sourcepub fn clone_for_fork(&self) -> Self
pub fn clone_for_fork(&self) -> Self
Clone file table for fork() All file descriptors are duplicated with same flags