gpt4 book ai didi

pipe - F_GETPIPE_SZ 在 C 中返回 -1

转载 作者:行者123 更新时间:2023-11-30 16:59:56 24 4
gpt4 key购买 nike

为什么 F_GETPIPE_SZ 会返回 -1?这听起来像是一个错误,但我找不到任何关于它是什么错误的提及,或者更重要的是,我应该做什么才能不出现错误。

我正在 Raspberry Pi 上运行 Raspbian,无论它的值(value)如何。我还没有在我的桌面 Debian 上尝试过这些代码。据我所知,我正在遵循教科书 F_GETPIPE_SZ 的示例。我错过了什么吗?

#define _GNU_SOURCE
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>

int main(int argc, char **argv)
{
int fd, pipesize;
fd = mkfifo("/tmp/audio-fifo",0666);
// fcntl(fd, F_SETPIPE_SZ, 4096);
pipesize = fcntl(fd, F_GETPIPE_SZ);
printf("Pipe size: %d\n", pipesize);
return 0;
}

最佳答案

mkfifo 只会为您创建特殊文件。如果成功,它将返回 0;如果发生错误,它将返回 errno

使用mkfifo创建管道后,您要做的就是使用open打开该文件。之后,您将拥有一个有效的文件描述符来传递 fnctl (只要这些函数都没有返回错误!)。

所以基本上你缺少的是open命令。

关于pipe - F_GETPIPE_SZ 在 C 中返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37896364/

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