Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;Linux中的流接口 我有一个C++程序,它运行一个这样的循环,从一个视频设备中获取帧,使用一个我无法访问的专有驱动程序。 while(true) { mybuf = getNextFrame(); // blocks }_C++_Linux_Filesystems_Driver_Fuse - Fatal编程技术网

C++;Linux中的流接口 我有一个C++程序,它运行一个这样的循环,从一个视频设备中获取帧,使用一个我无法访问的专有驱动程序。 while(true) { mybuf = getNextFrame(); // blocks }

C++;Linux中的流接口 我有一个C++程序,它运行一个这样的循环,从一个视频设备中获取帧,使用一个我无法访问的专有驱动程序。 while(true) { mybuf = getNextFrame(); // blocks },c++,linux,filesystems,driver,fuse,C++,Linux,Filesystems,Driver,Fuse,我想使用其他编程语言构建一些逻辑,所以我考虑使用以下接口。(我只需要Linux支持) 我想在某个地方放个文件,比如: /my/video/device 每次我对它调用read(),它都会给出当前帧。另外,如果我再次调用read(),我希望它阻塞,直到下一帧可用,然后为我返回该帧。另外,如果我暂时不调用open(),我不希望缓冲介于两者之间的帧 最好的方法是什么? 我试图使用FUSE实现一个文件系统,但它试图在文件内部查找,如果它是一个常规文件,则只能读取到我为该文件指定的大小。然后我制作了一个字

我想使用其他编程语言构建一些逻辑,所以我考虑使用以下接口。(我只需要Linux支持) 我想在某个地方放个文件,比如:
/my/video/device
每次我对它调用
read()
,它都会给出当前帧。另外,如果我再次调用read(),我希望它阻塞,直到下一帧可用,然后为我返回该帧。另外,如果我暂时不调用open(),我不希望缓冲介于两者之间的帧

最好的方法是什么? 我试图使用FUSE实现一个文件系统,但它试图在文件内部查找,如果它是一个常规文件,则只能读取到我为该文件指定的大小。然后我制作了一个字符设备,但它永远不会调用我的
read()
函数,而是说权限被拒绝


我想试试CUSE,或者类似的东西。我把事情复杂化了吗?我只需要能够处理来自我的C++循环的帧流,但是我想用不同的语言解析它们,比如Python或Go。我也不想把我的C++代码编译成GO或Python,我想把这两个代码完全分开。我认为在两者之间使用某种文件API会使事情变得更容易。处理这个问题的好方法是什么?

我将使用命名管道编写程序。要记住的一点是,如果在写入过程中接收端断开,服务器将接收到SIGPUTE信号,除非该信号被处理或阻塞,否则服务器将被终止。

是一个命名管道,这是您正在寻找的东西?@ ZekiNi我尝试命名管道,但是如果接收端断开连接,我的循环就存在了。我需要能够连接和断开管道。