DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
There is an internal OS interface called file_detach() that is prototyped and described in the header file include/nuttx/fs/fs.h:
| Code Block |
|---|
/**************************************************************************** * Name: file_detach |
...
* * Description: * This function is used to device drivers to create a task-independent * handle to an entity in the file system. file_detach() duplicates |
...
the * 'struct file' that underlies the file descriptor, then closes the |
...
file * descriptor. * * This function will fail if fd is not a valid file descriptor. In * particular, it will fail if fd is a socket descriptor. * * Input Parameters: * fd - The file descriptor to be detached. This descriptor will be * closed and invalid if the file was successfully detached. * filep - A pointer to a user provided memory location in which to * received the duplicated, detached file structure. * * Returned Value: * Zero (OK) is returned on success; A negated errno value is returned on * any failure to indicate the nature of the failure. * ****************************************************************************/ |
...
| Code Block |
|---|
#if CONFIG_NFILE_DESCRIPTORS > 0 int file_detach(int fd, FAR struct file *filep); #endif |
In order to use file_detach() you would do the following:
...
There is also a file_close_detached() internal OS function that you can use to recover resources if you no longer need the contained driver instance:
| Code Block |
|---|
/**************************************************************************** * Name: file_close_detached |
...
* * Description: * Close a file that was previously detached with file_detach(). |
...
* * Input Parameters: * filep - A pointer to a user provided memory location containing the * open file data returned by file_detach(). |
...
* * Returned Value: * Zero (OK) is returned on success; A negated errno value is returned |
...
on * any failure to indicate the nature of the failure. * ****************************************************************************/ |
...
| Code Block |
|---|
int file_close_detached(FAR struct file *filep); |
...