2014-04-16 4 views
3

wordexp 오류시 wordfree를 호출해야합니까? wordfree를 호출하는 것이 몇몇 경우에 segfault로 보인다. (예 : wordfree가 문자열이있는 오류 코드가 "foo 'bar"인 경우). 이것은 man 페이지에서 명확하지 않으며, 일부 오류 경우에 wordfree가 사용 된 것을 보았습니다.wordexp 오류시 wordfree를 호출해야합니까?

답변

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; 
}