c++ - 清除 Linux 内核链表

标签 c++ c linux list

我正在尝试修改一些使用 linux 内核中使用的 C 链表的代码,例如 this one用于联邦调查局。但我实际上需要清除列表并从头开始,我不确定最安全的方法。我也找不到在线示例。

关于如何安全地清除列表和释放所有内存有什么想法吗?

最佳答案

也许我找到了答案(数字...) 像下面这样的东西会起作用吗?

void delete_all(struct list_head *head)
{
    struct list_head *iter;
    struct foo *objPtr;

  redo:
    __list_for_each(iter, head) {
        objPtr = list_entry(iter, struct foo, list_member);
        list_del(&objPtr->list_member);
        free(objPtr);
        goto redo;
    }
}

关于c++ - 清除 Linux 内核链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11690158/

相关文章:

c++ - 在特定时间间隔读写日志c++

java - JNI GetByteArrayElements () 错误

linux - .c 文件的注释改了,scons 还是要重新编译?

c++ - 在 C++ 中创建一个可以被其他程序使用的伪终端

c++ - 为什么我们需要 C++11 中的 weak_ptr?

c++ - 如何从 CV_8UC4 矩阵中获取值

c++ - 如何将 boost::weak_ptr 转换为 boost::shared_ptr

c - 负整数 >> 31 = -1 不是 1?

c - 为什么此 C 代码生成 double 而不是 float ?

.net - centos 上最新的单声道