我们需要在wordexp失败时调用wordfree吗?

时间:2014-04-16 21:03:12

标签: c posix expansion

我们是否需要在wordexp失败时调用wordfree?在某些情况下调用wordfree似乎是段错误的(例如,当wordfree返回错误代码时,字符串是“foo'bar”)。 这个在手册页中并不清楚,我在一些错误情况下看到过使用过wordfree。

1 个答案:

答案 0 :(得分:4)

根据GNU's manual example,只有在返回WRDE_NOSPACE时才会出错:

switch (wordexp (program, &result, 0))
{
case 0:         /* Successful.  */
  break;
case WRDE_NOSPACE:
  /* If the error was WRDE_NOSPACE,
     then perhaps part of the result was allocated.  */
  wordfree (&result);
default:                    /* Some other error.  */
  return -1;
}