fifo

    8热度

    5回答

    当实现像队列这样的FIFO时,我的教师总是建议我们将其表示为圆形数组,而不是常规数组。为什么? 是否因为在后者中,我们最终会在数组中存在垃圾数据?

    1热度

    1回答

    我需要在C语言中为一个作业项目的一小部分实现一个队列。我已经用多种语言做了几年,所以我很惊讶我有这么多麻烦。我的问题是Head的价值不断被改变为最新增值。 这是到目前为止我的代码: void Enqueue(fifo* queue, int customerData) { //Determine if a head or tail exists int tailExists = 0; i

    4热度

    4回答

    我将首先解释我的问题,因为了解我想要什么非常重要:-)。 我正在写一个使用几个外部工具来执行几个基因组数据分析的python编写的管道。其中一种工具适用于非常大的fastq文件,最后不再是纯文本文件。 通常情况下,这个fastq文件是gzipped,并且由于它们是纯文本,因此压缩率非常高。大多数数据分析工具可以处理gzip文件,但我们有几个不能。所以我们在做的是unzipp文件,与他们合作,并最终

    1热度

    1回答

    我必须在UNIX中模拟C程序中的shell行为,记住一件重要的事情:父进程接收所有命令并将它们发送给子进程。然后小孩执行收到的命令,然后将输出发送给父亲。 这个想法是,我收到父母和我的主要子fork()的命令,以便他自己的孩子可以execvp命令并将输出发送到fifo管道。问题是我不能打破while循环(打印出正确的输出): mkfifo("output",S_IFIFO|0644); whil

    0热度

    1回答

    我试图在我的node.js服务器中写入一个fifo,只要有web请求进来。我将fifo用作任务队列,以便另一个程序可以读取它并做一些耗时的工作。 到目前为止,我有代码为我的node.js这样的服务器: fs = require('fs'); ... var fifoPath = '/tmp/myfifo'; var input = 'some input'; fs.open(fifoP

    0热度

    1回答

    我正在写一个状态机,它通过设置和读取读/写使能来控制芯片中的数据流。我的时钟运行在27 MHz,时间为37 ns。但是,我要与之通信的芯片规格要求我保存至少50 ns的“读取请求”信号。当然这是不可能的,因为我的周期是37纳秒。 我已经考虑过我可以创建一个额外的状态,它什么也不做,只是将下一个状态标记为我实际完成读取的状态,因此增加了另一个周期延迟(意思是74ns的'读取请求'),但这听起来不太好

    2热度

    1回答

    我看到两个不同的二进制文件不同epoll和select行为,并希望一些调试帮助。在下文中,epoll_wait和select将互换使用。 我有两个过程,一个作家和一个读者,在FIFO通信。读者执行epoll_wait以获得写入通知。我也想知道,当作家关闭FIFO,并且看起来epoll_wait应该通知我这一点。下列玩具程序,其行为与预期相同,说明了什么,我试图完成: #include <errno

    1热度

    2回答

    当在当前目录中尝试mkfifo()时,出现许可错误。我绝对有权在这里创建文件。任何想法可能是什么问题? char dir[FILENAME_MAX]; getcwd(dir, sizeof(dir)); for(i = 0; i<num_nodes; i++) { char path[FILENAME_MAX]; sprintf(path, "%s/%d",dir,

    7热度

    1回答

    背景 我有两个需要相互沟通的python进程。通讯由一个名为Pipe的类来处理。我为此做了一个单独的课程,因为大部分需要沟通的信息都以字典的形式出现,所以Pipe为此做了一个非常简单的协议。 这里是管构造: def __init__(self,sPath): """ create the fifo. if it already exists just associate wit

    3热度

    2回答

    我正在使用FIFO和select()系统命令运行测试。我们的想法是: 过程应该睡了select()命令等待从FIFO消息 如果没有消息进来,过程应该唤醒每5秒钟,说“没事尚” 如果消息进来,它应该醒来,打印邮件,然后终止 因此,这里的代码注意我取出错误检查,以节省空间: //process 1's code int main() { int fd, ret; fd_set