c - open失败,fopen不会

标签 c posix

每当我使用open时,我都会收到权限被拒绝的错误。但是当我使用 fopen 时,它可以很好地打开文件。我的代码有什么问题吗?

mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
char *filename = "dataread.txt";

rec = open(filename ,O_WRONLY | O_CREAT | O_TRUNC,mode);
if(rec == -1)
{
    perror("\nopen error 1:");
    exit(1);
}

错误:

open error 1:: Permission denied

使用 fopen 我不会收到此错误。

最佳答案

我添加了 int rec=0; var 声明和必要的包含文件,然后编译了您的代码。 作为普通用户,它在我的 Fedora 15 笔记本电脑上运行没有错误。检查您运行此程序的目录/文件权限,问题似乎不在代码中。

关于c - open失败,fopen不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598626/

相关文章:

r - 加速将 200 万行日期字符串转换为 POSIX.ct

python - 在损坏的符号链接(symbolic link)的 Python 中更改 mtime

c++ - 为什么像 *B[0] 这样的语句没有给出 2D 数组 B[2][3] 内第一个 1D 数组的地址?

c - C中的任何数字除以0,它是否属于段错误?

c - 阿尔萨 API : How to play two wave files simultaneously?

c - 二叉树实现中的段错误

c - 从C程序中,如何知道进程是在前台还是后台运行?

具有非确定性输出的 C fork and pipe 程序

c - 警告 : control reaches end of non-void function; error: null undeclared (c)

c++ - 原子附加到文件描述符上,但偏移量是多少?