jjzjj

linux - 写入 fifo(命名管道)

我正在尝试让Fortran90应用程序打开一个fifo并将格式化数据写入其中。我已将其简化为一个最小的示例。设foo.f90为以下程序:programfooopen(1,file='fifo',position='asis',action='write')write(1,*)'Hello,world!'write(1,*)'Goodbye.'endprogram现在编译并运行程序:$gfortran-4.7.1-ofoofoo.f90$rm-ffifo$./foo$catfifoHello,world!$rm-ffifo$mkfifofifo$catfifo>bar&[1]6115$s

linux - 无法写入通过 NFS 传送的 FIFO 文件

我正在尝试写入位于NFS装载上的FIFO文件,但它会阻塞。可能是什么问题?我的/etc/export:/tmp/test/10.0.0.0/24(rw,no_root_squash,async)ls/tmp/test在NFSserver和client上是一样的prw--w--w-1rootroot02009-06-2417:28ui-input我正在以root身份写作谢谢。 最佳答案 此响应现在可能为时已晚,无法为您提供帮助,但值得注意的是,您可以使用命名管道和“nc”(netcat)命令实现类似的效果。Netcat可以接受来自标准

linux - 检测读取器何时关闭命名管道 (FIFO)

有没有什么方法可以让作者知道读者已经关闭了命名管道的末端(或退出),没有写入?我需要知道这一点,因为我写入管道的初始数据不同;读者期望在其余数据到来之前有一个初始标题。目前,当我的write()因EPIPE失败时,我会检测到这一点。然后我设置了一个标志,上面写着“下次,发送标题”。但是,读者可以在我写任何东西之前关闭并重新打开管道。在这种情况下,我永远不会意识到他做了什么,也不会发送他期望的header。是否有任何类型的异步事件类型的东西可能对这里有帮助?我没有看到发送任何信号。请注意,我没有包含任何语言标签,因为这个问题应该被认为与语言无关。我的代码是Python,但答案应该适用于C

linux - shell/文件系统中的非阻塞/异步 fifo/命名管道?

有没有办法在shell中创建非阻塞/异步命名管道或类似的东西?这样程序就可以在其中放置行,这些行将保留在ram中,而当某个程序可以从管道读取一些行时,将未读取的内容留在fifo中?程序也很有可能同时写入和读取该fifo。起初我虽然也许这可以使用文件来完成,但是在网上搜索了一下之后,似乎同时读取和写入文件这一事实并没有什么好处。命名管道几乎可以工作,只是有两个问题:首先,如果另一端没有人,它们会阻止读/写,其次,即使我让写入被阻塞并设置两个进程在没有人读取的情况下写入管道,通过尝试为每个进程写一行,然后尝试head-n1我只得到一行,但两个写入过程都终止了,第二行丢失了。有什么建议么?编

c - 标准如何指定对常规文件(不是管道或 fifo)的原子写入?

posix标准指定当向管道或FIFO写入少于PIPE_BUF的字节时被授予原子性,也就是说,我们的写入不会与其他进程混合。但我没能找到标准如何指定常规文件。我的意思是,当我们写的少于PIPE_BUF时,它也将被授予原子性。但我想知道常规文件是否有这样的限制?我的意思是,管道有容量,所以当写入管道并超出其容量时,内核会让写入器进入休眠状态,因此其他进程将有机会写入,但常规文件似乎不必有这样的限制,我说得对吗?我正在做的是几个进程将日志生成到一个文件中。当然,设置了O_APPEND。 最佳答案 引自http://pubs.opengro

Linux SCHED_OTHER、SCHED_FIFO 和 SCHED_RR - 区别

谁能解释一下SCHED_OTHER、SCHED_FIFO和SCHED_RR之间的区别?谢谢 最佳答案 SCHED_FIFO和SCHED_RR是所谓的“实时”策略。它们实现了POSIX标准指定的固定优先级实时调度。具有这些策略的任务会抢占所有其他任务,因此很容易陷入饥饿状态(如果它们不释放CPU)。SCHED_FIFO和SCHED_RR的区别在于,在具有相同优先级的任务中,SCHED_RR以一定的时间片进行循环;相反,SCHED_FIFO需要显式让出处理器的任务。SCHED_OTHER是常见的循环分时调度策略,它根据系统中运行的其他任

异步fifo的UVM验证(最终版)

这一篇帖子我鸽子了好久,前俩周忙教研室课题还要做实验,今天五月最后一天就把这个验证的框架全部更新完了,我真的没有太监掉这个帖子。后续各位就可以在这个基础上自己写test文件来实现一些功能验证了。顺便我把代码放到gitee上了,有需要的小伙伴可以私聊我。写在前面的一些总结(很重要):****之前我是将数据放置到数据包里面发送,但是我对于这个方式改了很久发现了几个bug实在是无法解决:第一个就是发送多个数据包的时候,读速度跟不上,在写满后,会直接结束仿真,而不是读出一个数据后继续发送。第二个就是数据包长度太长时,同样在写满后,存在数据包都没发完,直接结束仿真。这个没有很好的解决办法,所以我在后续的

python - 如何在 Python 中正确写入 FIFO?

当我在Python中打开FIFO(命名管道)进行写入时,发生了一些非常奇怪的事情。考虑一下当我尝试打开一个FIFO以在交互式解释器中写入时会发生什么:>>>fifo_write=open('fifo','w')在我打开另一个解释器并输入以下内容之前,上述行会阻塞:>>>fifo_read=open('fifo','r')>>>fifo.read()我不明白为什么我必须等待管道打开以供阅读,但让我们跳过。上面的代码将阻塞,直到有预期的数据可用。但是,假设我回到第一个解释器窗口并输入:>>>fifo_write.write("sometestingdata\n")>>>fifo_write

python - Python中任意大小的字节 block 的高效FIFO队列

如何实现一个FIFO缓冲区,我可以有效地将任意大小的字节block添加到头部,并且我可以有效地从尾部弹出任意大小的字节block?背景:我有一个类,它以任意大小的block从类文件对象中读取字节,它本身就是一个类文件对象,客户端可以从中读取任意大小的block中的字节。我实现这个的方式是,每当客户端想要读取一个字节block时,该类将重复从底层类似文件的对象(具有适合这些对象的block大小)中读取并将字节添加到头部FIFO队列,直到队列中有足够的字节来为客户端提供请求大小的block。然后它从队列尾部弹出这些字节并将它们返回给客户端。当底层类文件对象的block大小远大于客户端从类中

java - Java中的FIFO类

我想通过Java中的一个类来实现FIFO。这样的类是否已经存在?如果没有,我该如何实现自己的?注意我在这里找到了一门类(class)http://www.dcache.org/manuals/cells/docs/api/dmg/util/Fifo.html,但它不包含dmg.util.*。我不知道这样的包是否存在。 最佳答案 您正在寻找任何实现Queueinterface的类,不包括PriorityQueue和PriorityBlockingQueue,它们不使用FIFO算法。可能是LinkedList使用add(在末尾添加一个)