Close a directory
#include <dirent.h> int closedir( DIR * dirp );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The closedir() function closes the directory specified by dirp, and frees the memory allocated by opendir().
The result of using a directory stream after calling one of the exec*() or spawn*() family of functions is undefined. After a call to the fork() function, either the parent or the child (but not both) may continue processing the directory stream using the readdir() and rewinddir() functions. If both the parent and child processes use these functions, the result is undefined. Either or both processes may call the closedir() function. |
Get a list of files contained in the directory /home/kenny:
#include <stdio.h> #include <dirent.h> #include <stdlib.h> int main( void ) { DIR *dirp; struct dirent *direntp; dirp = opendir( "/home/kenny" ); if( dirp != NULL ) { for(;;) { direntp = readdir( dirp ); if( direntp == NULL ) { break; } printf( "%s\n", direntp->d_name ); } closedir( dirp ); return EXIT_SUCCESS; } return EXIT_FAILURE; }
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
dirent, errno, opendir(), readdir(), readdir_r(), rewinddir(), seekdir(), telldir()