fifo

    0热度

    1回答

    我遇到以下代码的问题。我正在使用叉子(创建流程)进行实验室任务。它是一个简单的程序,它应该从键盘读取输入,然后将其读取/写入FIFO并显示其写入的内容和字节。 当我运行它时,一切似乎都很好,直到我输入一些文本。父打印消息显示正常,但是从不显示子打印消息,直到我输入了第二条消息,它总是说它写了80个字节,尽管我知道它没有,并且有一些奇怪的到处都是特殊字符 这里是关于程序应该如何可执行文件: 的Lin

    1热度

    2回答

    我正在寻找简单的字节FiFo缓冲区。我必须放置并获取一个字节或数组。但我可以把每一个单字节和数组,反之亦然。 任何想法或示例代码来帮助我?

    0热度

    1回答

    我一直在使用进程间通信在Linux上为C++编写一个小程序。当尝试以一种非阻塞的方式读取一个进程并使用另一个进程写入(阻塞)时,我遇到了问题。问题看起来像这样,当父母试图用O_NONBLOCK(或O_NDELAY)读取管道时,它从不读取单个字节,并且当孩子试图在管道上写入时,管道将失败并发送破损的管道信号。下面是代码示例: // Parent process mkfifo(PROC_COPROC

    0热度

    5回答

    我正在寻找一个线程安全无限阻塞fifo,它由固定缓冲区(如数组)支持。语义是多读者和写者线程可以安全地访问它。如果缓冲区已满并覆盖最旧的项目,写入程序会阻止。如果缓冲区为空,则读取器阻止。当总计添加和总计删除的计数器一次或多次缠绕内部缓冲区大小时,必须保持Fifo顺序。 有趣的是,我会寻找这个东西(java自己的并发集合,公共集合,番石榴)通常看不到有这样一个'明显'需求的即时答案。

    2热度

    1回答

    我正在使用命名管道来捕获系统日志消息。然后,我可以通过做类似 cat /var/log/local3.pipe | grep somefilter or grep somefilter /var/log/local3.pipe 很容易地查看系统日志。这些都将syslogs输出到控制台非常好。但是,如果我再要拍摄到一个文件中我什么也没得到,如 cat /var/log/local3.pipe

    3热度

    1回答

    我一直试图在我的实验室周一前得到一些关于FIFO和这个低级I/O的见解,而我遇到了这种情况,我不太明白。 方案应: 服务器: 创建的FIFO, 发送5个消息: “消息#i”,用5秒的间隔, 删除的FIFO, 客户端: 从FIFO读取并显示消息, 结束,如果有6秒无味精, 而且然而它确实沟通,客户端显示不正是我没有送他,更重要的是,每次新消息到达时,似乎都是从头开始阅读。我一直试图弄清楚,相当长一段

    0热度

    1回答

    我在使用FIFO作为stdin时遇到了一些麻烦。 我有这样的脚本: #!/usr/bin/env ruby while true do data = gets puts "Got: #{data}" end 然后我运行它想: $ ./script < input.fifo & $ echo testdata > input.fifo 它会打印出类似这样: Got:

    3热度

    1回答

    我会形容我的问题: 我开发的异步模式的文档生成应用程序(Office文档),所以我使用的线程 由于性能的限制,我必须在同一时间启动仅2个线程, 为了不阻断用户启动文档生成而两个线程正在运行,我想开发含有ArrayDeque对象作为threa一个主线程d堆栈,在那里用户可以添加创建请求(作为实施Collable或Runnable接口的对象),并且使用并行API来启动线程上FIFO模式 的问题是: 如

    17热度

    2回答

    我创建了一个FIFO,并定期从a.py只读和非阻挡地模式打开: os.mkfifo(cs_cmd_fifo_file, 0777) io = os.open(fifo, os.O_RDONLY | os.O_NONBLOCK) buffer = os.read(io, BUFFER_SIZE) 从b.py,打开FIFO写: out = open(fifo, 'w') out.write(

    2热度

    1回答

    我试图在使用fifo的两个进程之间来回发送信息。它工作到一个点,但然后一个阅读块。我怀疑Process2是错误的地方。 处理1: #include<fcntl.h> #include<sys/types.h> #include<sys/stat.h> main() { char oprtr; int fd1,fd0; float oprnd1,oprnd2,result; mkf