小编Cha*_*nya的帖子

为什么open()使用错误的权限创建我的文件?

我想从文件中读取一些文本并使用它写入到另一个open(),read()write().

这是我open()的文件写入(我想创建一个新文件并写入其中):

fOut = open ("test-1", O_RDWR | O_CREAT | O_SYNC);
Run Code Online (Sandbox Code Playgroud)

这是将文件权限设置为我根本不理解的东西.这是输出ls -l:

---------T 1 chaitanya chaitanya 0 2010-02-11 09:38 test-1
Run Code Online (Sandbox Code Playgroud)

甚至读取权限也被锁定.我试着寻找这个,但找不到任何东西.奇怪的是,write()仍然成功地将数据写入文件.

另外,如果我做'chmod 777 test-1',事情就会再次开始正常工作.

有人可以让我知道我在公开电话中哪里出错吗?

谢谢!

供您参考,我已粘贴以下完整程序:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

int main () {

    char buffer[512], ch;

    int fIn, fOut, i;
    ssize_t bytes;
    FILE *fp = NULL;

    //open a file
    fIn = open ("test", O_RDONLY);
    if (fIn == -1) {
        printf("\nfailed to …
Run Code Online (Sandbox Code Playgroud)

c unix file-io

46
推荐指数
4
解决办法
8万
查看次数

标签 统计

c ×1

file-io ×1

unix ×1