C语言:创建文件并判断写权限 - 完整代码示例
你可以使用C语言中的sys/stat.h库来判断目录是否存在,并使用sys/types.h和fcntl.h库来判断文件是否有写权限。下面是一个示例程序:
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
int main() {
// 判断目录是否存在
struct stat st = {0};
if (stat('a', &st) == -1) {
// 创建目录a
mkdir('a', 0700);
}
// 在目录a下创建文件b
int fd = open('a/b', O_CREAT | O_WRONLY, 0644);
if (fd != -1) {
printf('文件b创建成功\n');
// 判断文件b是否有写权限
if (fcntl(fd, F_GETFL) & O_WRONLY) {
printf('文件b有写权限\n');
} else {
printf('文件b没有写权限\n');
}
close(fd);
} else {
printf('文件b创建失败\n');
}
return 0;
}
上面的程序首先判断目录'a'是否存在,如果不存在,则使用mkdir函数创建目录。然后使用open函数创建文件'a/b',并使用O_CREAT和O_WRONLY参数指定创建文件且只读写权限。如果文件创建成功,则使用fcntl函数判断文件是否有写权限。最后,关闭文件描述符并返回程序结束。
请注意,该程序只能在UNIX或类UNIX系统上运行,因为Windows系统对于目录和文件的访问方式不同。
原文地址: http://www.cveoy.top/t/topic/hEPj 著作权归作者所有。请勿转载和采集!