无法在内核模块中处理空指针

时间:2017-02-08 07:01:49

标签: c linux ubuntu kernel

Hello目前我不知道为什么我无法检查指针是否为NULL。 我正在尝试检查task-> signal-> tty-> name是否具有名称或NULL,但它实际上将自身标识为NULL,即使它具有名称。

我使用了简单的迭代函数 建议?关于这个问题?

2 个答案:

答案 0 :(得分:0)

你应该这样试试:

for_each_process(task) {
  char *tty_name = NULL;
  if (task && task->signal && task->signal->tty)
    tty_name = task->signal->tty->name; 

  if (tty_name == NULL) {
    // Handle NULL pointer  
  } else {
    // Handle valid pointers
  }
}

答案 1 :(得分:-1)

处理空指针的条件表达式应如下所示:

if(!tty_name || tty_name == NULL)