标签: fifo

C 中的 FIFO(命名管道)

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, i);
    printf("%s\n", path);
    fifoArray[i] = mkfifo(path, O_WRONLY);
    if(fifoArray[i] < 0)
    {
         printf("Couldn't create fifo\n");
         perror(NULL);
    }
}
Run Code Online (Sandbox Code Playgroud)

c named-pipes fifo mkfifo

1
推荐指数
1
解决办法
2417
查看次数

如何用C语言制作fifo?

我必须mkfifo在 Ubuntu 中的 C 程序中使用。但我编译时出现错误:no such file or directory

我认为这个问题是因为我没有设置panel_fifo环境变量。但我不知道我该怎么做。

这是我用来测试此方法的代码:

char *myfifo="./sock/myfifo";

if (mkfifo(myfifo,0777)<0)
perror("can't make it");

if (fd=open(myfifo,O_WRONLY)<0)
 perror("can't open it");
Run Code Online (Sandbox Code Playgroud)

我用以下方法编译:

gcc gh.c -o gh

当我运行时,我收到以下错误消息:

can't make it:no such file or directory
can't open it:no such file or directory
Run Code Online (Sandbox Code Playgroud)

c linux fifo

1
推荐指数
1
解决办法
4793
查看次数

SNS 消息是否分散到 SQS 队列以保持顺序?

SNS 的 AWS 常见问题说:

问:消息会按照发布的确切顺序发送给我吗?

Amazon SNS 服务将尝试按照消息发布到主题的顺序传送来自发布者的消息。但是,网络问题可能会导致订阅者端出现乱序消息。

它是否适用于 SQS 消费者,特别是 FIFO SQS?我有一个用例,其中一个消费者需要维护发送消息的顺序。如果不是这种情况,我将需要使用其他东西。

fifo amazon-sqs amazon-web-services amazon-sns

1
推荐指数
1
解决办法
2421
查看次数

在java中使用的正确数据结构是什么?

我想在数据结构中保存整数,但不知道我可能得到的整数的数量.我希望数据库是FIFO类型.什么是最好的目的?

java database fifo

0
推荐指数
1
解决办法
913
查看次数

C#中的FIFO字符串分配

我目前正在创建一个我正在创建的程序的问题.我已经找到了答案,但它与我想要发生的事情有所不同,因为这里给出的是字符串.

我们被要求创建一个FIFO分配,这是程序作为控制台应用程序的预期流程:

输入号码.页面框架:2

输入号码.要插入的页面数:4

要插入的页面:A

插入帧1.中断生成.

要插入的页面:B

插入帧2.中断生成.

要插入的页面:A

插入失败.A是常驻页面.

要插入的页面:C

插入帧1.中断生成.

根据FIFO分配算法,如果插入新的不同页面,它将删除插入帧中的最早页面.如果页面已经在框架中,则页面插入将被拒绝.

我已经做了一个,虽然我目前陷入困境,试图弄清楚如何在数组中找到最早插入的元素.

我希望你能帮助我.我已经花了很多时间,但我只是不知道该怎么做.这是我的代码:

class Program
{
    static void Main(string[] args)
    {
        int f, p, interrupt;

        Console.WriteLine("Enter the number of frames: ");
        f = Int32.Parse(Console.ReadLine());
        string[] frame = new string[f];
        Console.WriteLine("Enter the number of pages: ");
        p = Int32.Parse(Console.ReadLine());

        for (int i = 0; i < p; i++) {


            Console.WriteLine("Page to be inserted: ");

            string x = Console.ReadLine();

            if (frame.Contains(x))
            {

                Console.WriteLine(x + " is a resident page.");


            } …
Run Code Online (Sandbox Code Playgroud)

c# memory arrays allocation fifo

0
推荐指数
1
解决办法
2018
查看次数

c ++矢量插入和读取

我在向量中插入带有push_back的元素.我想读取FIFO中的数据并使用指定为矢量开头的迭代器.是否还有其他方法可以在向量中读取FIFO中的数据?

c++ vector fifo

0
推荐指数
1
解决办法
177
查看次数

缓冲区的非阻塞或阻止分配?

我试图在Verilog中实现一个小行缓冲区.我从一端放入数据并从另一端读取数据.

wire [29:0] temp_pixel;
reg  [29:0] temp_buffer[2:0];
Run Code Online (Sandbox Code Playgroud)

我可以使用像这样的阻塞分配语句,它应该按预期工作.

always @(posedge TD_CLK27)
begin
temp_buffer[0] = temp_buffer[1];
temp_buffer[1] = temp_buffer[2];
temp_buffer[2] = temp_pixel;
end
Run Code Online (Sandbox Code Playgroud)

但是,我可以使用非阻塞语句(如下所示)并仍能获得预期结果吗?或者temp_buffer [1]在被读入temp_buffer [0]之前会被temp_buffer [2]覆盖?

always @(posedge TD_CLK27)
begin
temp_buffer[0] <= temp_buffer[1];
temp_buffer[1] <= temp_buffer[2];
temp_buffer[2] <= temp_pixel;
end
Run Code Online (Sandbox Code Playgroud)

这两个块是否都相同,或强制必须阻止赋值语句,为什么?

buffer verilog fpga fifo

0
推荐指数
1
解决办法
4304
查看次数

Azure服务总线,如何以先进先出的顺序接收会话?(先进先出)

我目前正在 C# 中使用 Azure 服务总线。我遇到的问题是消息没有按顺序读取(先进先出)。我一直在尝试使用会话来纠正消息读取的顺序。有没有办法确保会话和会话中的消息按先进先出的顺序读取?

c# fifo azure azureservicebus

0
推荐指数
1
解决办法
296
查看次数

我是否必须释放 std::queue 中的 malloc 内存?

我有个疑问。假设我有一个使用 malloc 分配的缓冲区,如下所示:

uint16_t buffer_length = 200; // !size is dynamic!, never static
uint8_t* buffer = (uint8_t*) malloc(200*sizeof(uint8_t));
// buffer then is populated somehow from 0 to 199
Run Code Online (Sandbox Code Playgroud)

现在我有一个 std::queue ,我需要 FIFO 几个分配的缓冲区,如下所示:

std::vector<uint8_t> buffer_vector(buffer, buffer + buffer_length);
std::queue<std::vector<uint8_t>> fifo_queue;
fifo_queue.push(buffer_vector);
Run Code Online (Sandbox Code Playgroud)

考虑到我决定从 uint8_t* 转移到 std::vector 因为我可以在单个元素中存储更多缓冲区信息(长度)。现在我想从队列中取出项目:

std::vector<uint8_t> taken_item = fifo_queue.front(); // reads the FIFO item
fifo_queue.pop(); // removes from FIFO
uint8_t* taken_item_buffer_ptr = taken_item.data(); // takes the buffer ptr
uint16_t taken_item_buffer_length = taken_item.capacity(); // takes the size
Run Code Online (Sandbox Code Playgroud)

现在我可以处理从 FIFO 返回的缓冲区,问题是,我是否必须释放返回的指针?例如如下: …

c++ malloc queue free fifo

0
推荐指数
1
解决办法
336
查看次数

golang fifo缓冲频道

根据我的理解:当通道满时,GO中的缓冲通道不是FIFO.
我在我的应用程序中需要这种行为(FIFO行为).
我怎样才能实现这种行为?那有什么开源吗?
提前致谢

编辑:
有些人不喜欢这个问题,所以让我更清楚一点:
我的意思是当缓冲频道已满并且多个发送者
在尝试向频道添加项目时被阻止时,他们将被释放的顺序
不是FIFO.您还可以阅读以下讨论:https://github.com/golang/go/issues/11506

所以,是的,我正在寻找实现这种行为的第三方库.
对不起,不清楚.

channel fifo go

-1
推荐指数
1
解决办法
3472
查看次数

该程序没有提供所需的输出.错误的FIFO实现?

这是一个使用的FIFO程序linked list.该程序没有提供所需的输出,但会生成一个长循环,该循环在某个时间后停止并且有一条消息表明程序已停止工作.问题是什么 ?

#include <iostream>
using namespace std;

struct node {
      int data;
      struct node* previous; // This pointer keeps track of the address of the previous node
};

struct queue {
      node* first;
      node* last;
};

node* dataNode_P_A; 

bool loop = true;

struct node* enterData();
struct node* enter_N_Data();
void displayQueue();

int main() {
    struct node* dataNode= enterData();

    while( loop ) {
        cout << "Want to enqueue ? Press y/n : ";
        char ans;
        cin >> ans;
        if( …
Run Code Online (Sandbox Code Playgroud)

c++ queue fifo visual-c++ data-structures

-2
推荐指数
1
解决办法
181
查看次数

4 FIFO和序列化

我已经实现了一个4 FIFO队列和一个搜索FIFO索引的块,当发现一个非空的FIFO将提取数据结束时,它将串行发送它.

这是代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Serialize is
       port
       (
           TX                                                                  : out std_logic_vector(1 downto 0);
           RESET, CLK, We1, We2, We3, We4                                      : in std_logic;
           --
           DATA_IN_A, DATA_IN_B, DATA_IN_C, DATA_IN_D                          : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
           fifo_full1, fifo_full2, fifo_full3, fifo_full4                      : out std_logic;
           --
           SendPackage                                                         : out std_logic
       );
end Serialize;

architecture rtl of Serialize is
     signal step, nr : integer:=0;
     signal enl : std_logic := '0';
     signal temp : std_logic_vector(31 downto 0);
     --signal txx …
Run Code Online (Sandbox Code Playgroud)

vhdl fifo

-3
推荐指数
1
解决办法
1192
查看次数