2014-04-16 5 views
3

Нужно ли нам называть wordfree при ошибке wordexp? В некоторых случаях вызов wordfree кажется segfault (например, когда wordfree возвращает код ошибки со строкой, это «foo» bar »). Это не ясно из man-страницы, и я видел, что wordfree используется в некоторых случаях ошибок.Нужно ли нам вызывать wordfree при ошибке wordexp?

ответ

3

Согласно 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; 
} 
Смежные вопросы