- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 fopen
和 fdopen
创建并打开一个文件来写入一些内容。下面是我写的代码:
char Path[100];
int write_fd;
snprintf(Path,100,"%s/%s","/home/user","myfile.txt");
printf("opening file..\n");
write_fd = open(Path, O_WRONLY | O_CREAT | O_EXCL, 0777);
if(write_fd!=-1)
{
printf(" write_fd!=-1\n");
FILE *file_fp = fdopen(write_fd,"a+");
if (file_fp == NULL)
{
printf("Could not open file.File pointer error %s\n", std::strerror(errno));
close(write_fd);
return 0;
}
write(write_fd, "First\n", 7);
write(write_fd, "Second\n", 8);
write(write_fd, "Third\n", 7);
fclose(file_fp);
}
文件 fd write_fd
是用错误的权限创建的,它应该有读/写权限(?)。但是当 fdopen
调用模式为 a+
的文件描述符时,它会抛出错误,提示无效参数。
以a
模式成功打开。
导致此错误的模式 a
和 a+
之间究竟有何不同?
最佳答案
a+
模式表示附加 和读取。
由于您最初以只写模式打开文件 (O_WRONLY | O_CREAT | O_EXCL
),因此读取访问与初始描述符的模式不兼容。
因此,调用fdopen()正确地以 EINVAL
失败。
关于c++ - fdopen : Invalid arguement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30476983/
我想要一个 FILE* 类型来使用 fprintf。我需要使用 fdopen 来获取 FILE* 而不是返回 int 的 open。但是我们可以对 fdopen 和 open 做同样的事情吗? (我从
我使用 fdopen 将流与打开的文件相关联。 当我close()文件,流是否也自动解除关联,并且所有流内存都返回到操作系统,还是我需要知道 fdopen 文件并以特定方式关闭它? -亚当 最佳答案
如果有的话,我需要做什么来关闭从 os.open 获得并随后与 with os.fdopen 一起使用的文件描述符?我从下面的代码中得到的 OSError 让我认为答案可能是“无”,但我无法在文档中找
我正在尝试使用 fopen 和 fdopen 创建并打开一个文件来写入一些内容。下面是我写的代码: char Path[100]; int write_fd; snprintf
下面的代码应该将“一些文本”写入 demo.txt,但它不起作用: #include #include #include #include #include int main(int arg
我有以下 C 代码。child 用于运行 test3,其代码如下。父级用于将数据传递给子级,子级将重定向到 test3 的 STDIN。 #include #include #include #
我有一个 socket socks : int sock = socket(...); connect(sock, ...); // or sock = accept(sock_listen, 0,
APUE 说 With fdopen, the meanings of the type argument differ slightly. The descriptor has already be
我正在尝试了解标准 I/O。我遇到了调用 fdopen() 的问题。 如果我按如下方式在同一个文件描述符上调用 fdopen(),会有什么行为?为什么我得到 '\377' (-1) 的输出? #inc
这个问题在这里已经有了答案: C - Proper way to close files when using both open() and fdopen() (2 个答案) 关闭 3 年前。 如
我在尝试编译我的程序时遇到以下错误: 调用 fdopen:错误的文件描述符 我读到这可能是与在我的一个头文件中包含预编译头有关的问题。导致错误的文件中包含 stdio.h header ,因此我可以访
我曾经认为 os.fdopen() 要么吃掉文件描述符并返回一个文件 io 对象,要么引发异常。 例如: fd = os.open("/etc/passwd", os.O_RDONLY) try: o
我无法从 mkstemp 返回的句柄写入由 fdopen 打开为 rw 的文件。 >>> import tempfile >>> import os >>> a = tempfile.mkstemp(
我在调用 fdopen 时遇到错误并将 errno 设置为 22。我正在使用 exec 命令调用子进程。子进程在文件描述符 4 上调用 fdopen。第一个子进程工作并将数据发送回父进程,errno
这个问题与 Write file with specific permissions in Python 的答案有关用于打开具有特定权限的写入文件(在 python 中)。 答案中的代码如下所示: w
以下哪项更正确? fi, path = tempfile.mkstemp() f = os.fdopen(fi, "w") f.write(res) f.close() os.close(fi) 或:
因此,我正在用 C 构建一个 Unix minishell,并正在实现输入、输出和错误重定向,并且遇到了文件问题。我在找到重定向运算符的循环中打开我的文件,并使用 open(),它返回一个 fd。然后
这个问题在这里已经有了答案: Why does open make my file descriptor 0? (4 个答案) 关闭 5 年前。 我将 open() 与 O_RDWR 一起使用,然后
int source = open("hi", O_CREAT | O_RDONLY); int dest = open("resultfile", O_CREAT | O_RDWR | O_TRUN
这段代码在 Python 2.7.16 和 3.8.3 上运行时会产生不同的结果: import tempfile import os fd, lockfile = tempfile.mkstemp(
我是一名优秀的程序员,十分优秀!