(我正在使用 linux/list.h 实现一个名为 msgQueue 的队列)
typedef struct msgQueue
{
long len;
void *data;
struct list_head queue;
} msgQueue
有很多迭代列表并删除节点的示例,如下所示:
struct list_head *pos, *q;
struct msgQueue *currentQueue;
list_for_each_safe(pos, q, &(myQueue->queue))
{
currentQueue = list_entry(pos, struct msgQueue, queue);
list_del(pos);
free(currentQueue);
}
什么是删除第一个的安全方法?
我本来以为会是:
list_del(*(myQueue->queue));
但这给我带来了问题。(内核分页请求错误)