Buscando en google, una de las primeras entradas es
http://www.programatium.com/manuales/c/19.htm
Que contiene, entre otras cosas, lo siguiente
18.2.1 Permisos de accesos a archivos
La función int access(const char *trayectoria, int modo); -- determina los permisos de usuario para un fichero, de acuero con modo, que esta definido en #include <unistd.h>, los cuales pueden ser:
R_OK -prueba el permiso de lectura.
W_OK -prueba el permiso de escritura.
X_OK -prueba el permiso de ejecución o búsqueda.
F_OK -prueba si se permite la comprobación de la existencia del fichero.
La función access() regresa: 0 si ha habido éxito, o -1 en caso de falla y a errno se le asigna un valor adecuado. Ver las páginas del man para ver la lista de errores.