errno.h에 미리 정의된 식별자 같은데 모르겠군요.
붕붕
질문 제목 : errno에 미리 정의된 식별자 같은데 모르겠군요. einval이 errno.h에 의해 쓸 수 있는 것 같은데, 이것은 무슨 의미인지 자세히 알고 싶습니다.질문 내용 : 아래의 소스 코드 중에서 einval의 의미
#includestdlib.h
#includeerrno.h
#includestring.h
int makeargv(const char *s, const char *delimiters, char ***argvp)
{
int error;
int i;
int numtokens;
const char *snew;
char *t;
if ((s == null) || (delimiters == null) || (argvp == null))
{
errno = einval; einval이 errno.h에 의해 쓸 수 있는 것 같은데, 이것은 무슨 의미인지 자세히 알고 싶습니다.
return -1;
}
*argvp = null;
snew = s + strspn(s, delimiters);
if((t = malloc(strlen(snew) + 1)) == null)
return -1;
strcpy(t, snew);
numtokens = 0;
if (strtok(t, delimiters) != null)
for(numtokens = 1; strtok(null, delimiters) != null;numtokens++);
if((*argvp = malloc((numtokens+1)*sizeof(char*))) == null)
{
error = errno;
free(t);
errno = error;
return -1;
}
if(numtokens == 0)
free(t);
else
{
strcpy(t, snew);
**argvp = strtok(t, delimiters);
for(i=1;inumtokens;i++)
*((*argvp) + i) = strtok(null, delimiters);
}
*((*argvp) + numtokens) = null;
return numtokens;
}