问题标签 [fifo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
677 浏览

c - 捕获程序输出

我正在制作一个小型库,它基本上会将程序的标准输出(例如 printf())捕获到一个单独的进程/线程中......然后这个进程应该执行某些任务(比如说将这些捕获的输出写入文件) ...我才刚刚开始做严肃的 C 编程,所以我还在学习。

我想知道执行此操作的最佳方法是什么,我的意思是使用进程或线程...我如何捕获这些 printf() 语句...如果由程序生成,该库还必须处理任何子进程.. .一般假设是使用它的程序是线程的,所以我应该采取什么样的方法。

0 投票
2 回答
1548 浏览

embedded - 嵌入式系统上的线程安全单消费者、单生产者 FIFO

我有一个 TI DSP(TMS320F28235,如果有人关心的话),我需要实现一个 FIFO,以便在主循环代码和中断之间排队信息。这个队列的高速执行非常关键,但正确的操作也是如此,我不确定我是否可以在没有任何显式同步的情况下实现 FIFO,或者如果不能,我必须禁用中断。

我找到了这个页面,想知道这里是否有人可以评论它的适用性。

0 投票
3 回答
4994 浏览

c - 重定向时强制程序刷新其标准输出

我有一个将输出打印到标准输出的封闭源程序。我需要解析输出。所以我使用 dup2 将输出重定向到一个 fifo(我可以从中读取分叉和执行二进制文件的父进程),然后执行程序。问题是文件中的 fprintf 调用被缓冲,因为它现在正在写入文件。

在调用 exec 之前,我尝试在标准输出上使用 _IONBF 调用 setvbuf。但问题仍然存在。

为什么 setvbuf 对我没有帮助?

我怎样才能强制输出被刷新?

0 投票
5 回答
27116 浏览

algorithm - 为什么 LRU 比 FIFO 好?

为什么最近最少使用的页面文件比 FIFO 更好?

0 投票
1 回答
3115 浏览

python - 如何让 os.mkfifo 和 subprocess.Popen 一起工作?

我正在尝试使用命名管道重定向补丁命令输出。我试过这样:

但是我的脚本在Popen()调用中停止,就像补丁命令没有完成一样。我怎样才能让它正常工作?

0 投票
6 回答
3341 浏览

c++ - FIFO 列表(移动元素)[C++]

晚安,人们!

我正在尝试解决一个相当简单的问题,但是.. 好吧,似乎我做不到。:)

这个想法是我有一个包含 n 个元素的 FIFO 列表(FIFO 队列),并且它被赋予了一个值 k (k < n)。我的小程序必须用 k 个元素将元素向左移动。(例如对于 n=4, k=3, a[]=(1, 2, 3, 4),结果是 4 1 2 3)。

但好吧,我离那还很远。

这是我到目前为止所写的:

任何帮助将不胜感激。先感谢您。

0 投票
4 回答
5566 浏览

sql-server - Sql Server BULK INSERT 可以从命名管道/fifo 中读取吗?

BULK INSERT/bcp 是否可以从命名管道读取fifo样式?

也就是说,不是从真正的文本文件中读取,而是 BULK INSERT/bcp 是否可以从位于另一个进程的写入端的命名管道中读取?

例如:

  1. 创建命名管道
  2. 解压文件到命名管道
  3. 使用 bcp 或 BULK INSERT 从命名管道读取

或者:

  1. 创建 4 个命名管道
  2. 将 1 个文件拆分为 4 个流,将每个流写入单独的命名管道
  3. 使用 bcp 或 BULK INSERT 从 4 个命名管道读取到 4 个表

我找到的最接近的是这个家伙(现在无法访问站点),他设法使用bcp 写入命名管道,具有自己的实用程序和用法,如下所示

但他无法让反向工作。

因此,在我开始做傻事之前,我想知道从根本上是否可以带有 BULK INSERT 或 bcp 的命名管道中读取。如果可能的话,人们将如何设置它?NamedPipeServerStream.NETSystem.IO.Pipes命名空间中的其他内容是否足够?

例如,使用 Powershell的示例:

然后什么?

0 投票
1 回答
308 浏览

bash - “按需”写入 .Ts 文件(通知?...)

我有一个只能读取 samba 共享文件的媒体播放器。我想播放http流(例如从我的dreambox)。

我的想法是在我的 linux 上共享一个文件夹。在这个分享中,我将为每个我希望能够观看的电视频道放置一个(假的?)文件(例如:channel1.ts、channel2.ts ...)。

媒体播放器只能像使用常规文件一样读取这些文件。我的需要:做一些“监听”访问这些文件的事情,这样当我的媒体播放器访问它时,它会触发一个mencoder -oac copy -ovc copy -o channel1.ts http://path.to.the.broadcast.ts .

我尝试在一个空文件上使用inotify 。它很好地触发了mencoder,但媒体播放器在编码开始之前停止了(因为文件是空的,所以它在开始之前就到达了结尾)。也许,必须填充 5 秒的视频才能缓冲读取?

使用“fifo”可能会很好 => 我试过了,媒体播放器等待,当我做 mencoder 时,fifo 开始增长,媒体播放器播放它!是啊!!!...但是inotify似乎对fifo没有反应...所以我不能自动触发mencoder。

欢迎提出任何建议。

基本点:

  • 媒体播放器只能读取常规文件
  • 文件必须在 samba 共享文件夹中
  • 记录必须按需“触发”(当媒体播放器尝试访问它时)
  • 可以很好地观察“不活动”以停止记录/清空缓冲区文件

将这个问题形式化并不容易。我有点失望,我什至不知道我可以用谷歌搜索什么样的搜索。

希望这里的一些大师会找到一些可以解决问题的方法

干杯。

0 投票
3 回答
437 浏览

c# - 使用 FIFO 过滤

我想在一定时间内从流中过滤传入的包。

例如

5秒内过滤所有“A”

我想过用一种 FIFO 来实现它。

你认为最好的解决方案是什么?

我正在使用 c#,.net 3.5

0 投票
3 回答
1139 浏览

c - 读取 fifo 的最后一行

情况如下:某些进程将行写入 fifo 文件(使用 创建mkfifo)。在我的程序中的某个时刻,我想读取 fifo 中的最后一行,并丢弃所有其他行。仅当fifo 中的行数少于一行时,该过程才可能阻塞。

我想不出一个干净的方法来做到这一点,有什么想法吗?

编辑:写入过程将永远不会停止将行写入fifo,我的意思是最后一行是我读取fifo时的最后一行。它后面不一定跟着 EOF。