dircntl()
QNX SDP8.0C Library ReferenceAPIDeveloper
Control an open directory
Synopsis:
#include <dirent.h>
int dircntl( DIR * dir,
int cmd,
... );
Arguments:
- dir
- Provide control for this directory.
- cmd
- At least the following values are defined in <dirent.h>:
- D_GETFLAG — retrieve the flags associated with the directory
referenced by dir.
For more information, see
Flag values,
below. - D_SETFLAG — set the flags associated with the directory referenced by dir to the value given as the additional flags argument.
- D_GETFLAG — retrieve the flags associated with the directory
referenced by dir.
For more information, see
If cmd is D_SETFLAG, you must also specify the following argument:
- unsigned flags
- Any combination of the flags described in
Flag values,
below.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The dircntl() function provides control over the open directory referenced by the dir argument. This function behaves in a manner similar to the file control function, fcntl().
Flag values
The flags that you can get or set for a directory include the following:
Returns:
The return value depends on the value of cmd:
- D_GETFLAG
- The flags associated with the directory.
- D_SETFLAG
- 0.
- Any other value
- -1 (errno is set to ENOSYS).
Examples:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
int main(int argc, char **argv) {
DIR *dp;
int ret;
if(!(dp = opendir("/"))) {
exit(EXIT_FAILURE);
}
/* Display the flags that are set on the
directory by default*/
if((ret = dircntl(dp, D_GETFLAG)) == -1) {
exit(EXIT_FAILURE);
}
if(ret & D_FLAG_FILTER) {
printf("Directory names are filtered\n");
} else {
printf("Directory names are not filtered\n");
}
if(ret & D_FLAG_STAT) {
printf("Servers asked for extra stat information\n");
} else {
printf("Servers not asked for extra stat information\n");
}
closedir(dp);
return 0;
}
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | No |
Thread | Yes |
Page updated: