gpt4 book ai didi

linux - 尝试添加 FIFO 队列系统调用

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:13 26 4
gpt4 key购买 nike

我目前正在学校上操作系统类(class)。

现在,我一直在尝试添加一些在内核空间中创建队列的新系统调用。

我想在这里做三件事:

1) 创建队列(通过动态分配或仅声明一个数组)

2) 入队

3) 出列

问题出在 1).

系统调用源文件的示例代码如下:

asmlinkage long sys_allocqueue(unsigned int size){
int *queue = kmalloc(sizeof(int) * size, GFP_KERNEL);
return 0;
}

这只是声明数组:

asmlinkage long sys_allocqueue(unsigned int size){
int queue[size];
return 0;
}

无论哪种方式,我都会得到 -1 的返回值,这是测试应用程序中系统调用的错误。

我不知道为什么这不起作用。

附言

我还发现了有关使用 kfifo.h 创建队列的信息,但效果也不理想。

最佳答案

是内核编译问题

编译后,在重新启动时,我的 Ubuntu 停止了,所以我强行退出所有内容并重新打开它。

之后问题就开始了。

我重新编译它并重新启动它,不是通过 sudo reboot,而是通过关闭它然后重新打开它。

现在它又开始工作了。

关于linux - 尝试添加 FIFO 队列系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36248281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com