Manpages

이 름

strtok, strtok_r − 문 자 열 에 서 토 큰 들 을 뽑 아 낸 다 .

사 용 법

#include <string.h>

char *strtok(char *s, const char *delim);

char *strtok_r(char *s, const char *delim, char **ptrptr);

설 명

’토 큰 ’이 란 문 자 열 delim에 속 하 지 않 는 문 자 들 로 이 루 어 진 비 어 있 지 않 은 문 자 열 이 며 \0이 나 delim에 있 는 문 자 가 뒤 따 른 다 .

strtok() 함 수 는 문 자 열 s를 토 큰 으 로 파 싱 하 기 위 해 사 용 된 다 . strtok()의 첫 번 째 인 자 로 s를 주 면 , 가 장 앞 에 있 는 토 큰 을 구 하 고 , 그 문 자 열 안 의 다 음 토 큰 을 구 하 고 자 할 때 에 는 첫 번 째 인 자 를 NULL로 설 정 하 여 야 한 다 . 각 호 출 은 다 음 토 큰 에 대 한 포 인 터 를 반 환 하 거 나 더 이 상 토 큰 이 발 견 되 지 않 는 다 면 NULL을 반 환 한 다 .

토 큰 이 구 분 자 로 끝 난 다 면 , 이 구 분 자 는 \0로 겹 쳐 쓰 여 지 며 다 음 문 자 에 대 한 포 인 터 가 strtok()에 대 한 다 음 호 출 을 위 해 저 장 된 다 . 구 분 문 자 열 delim는 각 호 출 시 다 를 수 있 다 .

strtok_r() 함 수 는 strtok() 와 동 일 하 게 작 동 한 다 . 그 러 나 정 적 버 퍼 를 사 용 하 는 대 신 에 이 함 수 는 char * 포 인 터 로 할 당 된 유 저 에 대 한 포 인 터 를 사 용 한 다 . 이 포 인 터 , ptrptr 파 라 미 터 는 같 은 문 자 열 을 파 싱 하 는 동 안 같 아 야 만 한 다 .

버 그

이 함 수 를 사 용 해 서 는 안 된 다 . 만 일 사 용 해 야 한 다 면 , 다 음 을 주 의 하 라 :

이 함 수 는 처 음 인 자 를 수 정 한 다 .

구 분 자 의 원 본 은 잃 게 된 다 .

이 함 수 는 상 수 문 자 열 에 서 는 사 용 해 서 는 안 된 다 .

strtok () 함 수 는 파 싱 하 는 동 안 정 적 버 퍼 를 사 용 한 다 . 그 래 서 thread safe가 아 니 다 . 만 일 이 것 이 문 제 라 면 strtok_r () 를 사 용 해 라 .

반 환 값

strtok() 함 수 는 다 음 토 큰 에 대 한 포 인 터 를 반 환 하 거 나 만 일 더 이 상 토 큰 이 없 다 면 NULL을 반 환 한 다 .

호 환

strtok()

SVID 3, POSIX, BSD 4.3, ISO 9899

strtok_r()

POSIX.1c

관 련 항 목

index(3), memchr(3), rindex(3), strchr(3), strpbrk(3), strsep(3), strspn(3), strstr(3)

번 역

정 강 훈 <skyeyes [AT] soback.net> 2001년 2월 24일
한 글 Manpage 프 로 젝 트 (http://man.kldp.org) 2005년 2월 11일