Format
#include <io.h> int access(char *pathname, int mode);
Language Level: POSIX, XPG4, Extension
access determines whether the specified file exists and whether
you can get access to it in the given mode. Possible values for
the mode and their meaning in the access call are:
| Value | Meaning |
| 06 | Check for permission to read from and write to the file. |
| 04 | Check for permission to read from the file. |
| 02 | Check for permission to write to the file. |
| 00 | Check only for the existence of the file. |
Note: In earlier releases of the C/C++ run-time library, access began with an underscore _access. Because it is defined by the X/Open standard, the underscore has been removed. For compatibility, IBM C and C++ Compilers will map _access to access for you.
Return Value
access returns 0 if you can get access to the file in the
specified mode. A return value of -1 shows that the file does not
exist or is inaccessible in the given mode, and the system sets
errno to one of the following values:
| Value | Meaning |
| EACCESS | Access is denied; the permission setting of the file does not allow you to get access to the file in the specified mode. |
| ENOENT | The system cannot find the file or the path that you specified, or the file name was incorrect. |
| EINVAL | The mode specified was not valid. |
| EOS2ERR | The call to the operating system was not successful. |
Example
This example checks for the existence of the file
sample.dat. If the file does not exist, it is created.
#include <io.h> #include <stdio.h> #include <stdlib.h>
int main(void)
{
if (-1 == access("sample.dat", 00)) {
printf("File sample.dat does not exist.\n");
printf("Creating sample.dat.\n");
system("echo Sample Program > sample.dat");
if (0 == access("sample.dat", 00))
printf("File sample.dat created.\n");
}
else
printf("File sample.dat exists.\n");
return 0;
/************************************************
The output should be:
File sample.dat does not exist.
Creating sample.dat.
File sample.dat created.
************************************************/
}
![]()
chmod -- Change File Permission Setting
_sopen -- Open Shared File
umask -- Sets File Mask of Current
Process
<io.h>