http://php.net/manual/es/function.fopen.php consulta la documentación sobre los diferentes modos.
con respecto al control de errores, PHP lo dispone según la versión, pero en el caso de éstas funciones heredadas de C no funciona, por lo cual lo más recomendable es usar file_exists, además debes de asegurarte que el directorio tenga los permisos de escritura necesarios.
de igual forma, si la función falla devuelve FALSE, por lo cual puedes comprobar:
Código PHP:
Ver originalif ($fd === false) {
echo 'no se puede crear el archivo');
}