| EACCES | CAUSE
 | Either the calling process does not have search permission to a component of pathname or does not have read permission to the directory to be opened.
 | 
|   | ACTION
 | Make sure that the calling process has ACD traverse directory (TD) access for all components of the pathname and ACD read directory (RD) access to the directory to be opened.
 | 
| EFAULT | CAUSE
 | The system detected a NULL or bad address in attempting to use
the pathname parameter or the pathname was not terminated by a null character. | 
|   | ACTION
 | Make sure that the pointer is correctly initialized.
 | 
| EIMPL | CAUSE
 | The pathname begins with two slash characters (//). | 
|   | ACTION
 | Do not begin pathnames with two slash characters (//).
 | 
| EMFILE | CAUSE
 | The number of directory streams and files opened by the calling process would exceed {OPEN_MAX}. | 
|   | ACTION
 | Reduce the number of directories and files opened by the process.
 | 
| ENAMETOOLONG | CAUSE
 | One of the following: The length of the pathname exceeds the {PATH_MAX} limit (defined in the file <limits.h>).
 A component of the pathname is longer than {NAME_MAX} (defined in <limits.h>), and {_POSIX_NO_TRUNC} is in effect for that directory.
 
  | 
|   | ACTION
 | Make sure that both the component's length and the full pathname
length do not exceed the {NAME_MAX} or {PATH_MAX} limits.
 | 
| ENOENT | CAUSE
 | The specified directory does not exist, or pathname points to an empty string. | 
|   | ACTION
 | Specify an existing directory name.
 | 
| ENOTDIR | CAUSE
 | A component of the pathname is not a directory. | 
|   | ACTION
 | Specify a valid pathname.
 | 
| ESYSERR | CAUSE
 | An operating system error has occurred that does not map directly to any of the above errors. | 
|   | ACTION
 | Examine the MPE/iX error stack for the type of system error.
 |