gpt4 book ai didi

c - 写(): Bad file descriptor

转载 作者:行者123 更新时间:2023-12-01 12:36:35 27 4
gpt4 key购买 nike

我正在尝试学习 POSIX 中的基本 IO 函数,我编写了以下代码,但它不起作用,并且在我尝试执行代码时返回“Bad file descriptor”错误:

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

#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main(void)
{

int nfd;
ssize_t ret;

mode_t mode = S_IRWXU | S_IRWXG;

nfd = openat(AT_FDCWD, "idx.txt", O_APPEND | O_SYNC | O_CREAT, mode);

if (-1 == nfd)
{
perror("openat()");
exit(EXIT_FAILURE);
}

ret = write(nfd, "HELLO", 5);

if (-1 == ret)
{
perror("write()");
exit(EXIT_FAILURE);
}

close(nfd);

return 0;
}

我想以 O_APPEND 模式写入文件。但是:

$ touch idx.txt # it does not work even if the file does not exist already
$ ./a.out
write(): Bad file descriptor

最佳答案

您没有告诉系统您要写入文件,向标志添加 O_WRONLY 或 O_RDWR 使其工作。

关于c - 写(): Bad file descriptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com