你可以使用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系统对于目录和文件的访问方式不同。

C语言:创建文件并判断写权限 - 完整代码示例

原文地址: http://www.cveoy.top/t/topic/hEPj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录