strtok 함수 내부의 정적 변수
맨삶이
2023.08.03
질문 제목 :strtok 함수 내부의 정적 변수
질문 요약 :strtok 함수 내부의 정적 변수 사용법질문 내용 : strtok사용시..문자열 str[] 에서 token 추출시 다음과 같이 쓰잖아요token = strtok(str, );그리고 그다음 계쏙 추출할때
token = strtok(NULL, ); 와 같이 NULL로 해주는데 이 이유가 strtok함수 내부에 정적 변수가 있어서그 전에 추출하고 추출된 부분의 바로 다음 부분을 가리키는 포인터를 저장해놨다가 그 포인터를 반환하면서 또 추출을 하는 원리 라고 나와있더군요 찾아보니까..근데 제가 다른 문자열(str2)에서 추출하다가 다시 원래의 문자열(str)에서 추출을 다시 시작하고싶은데..이럴경우 strtok의 정적변수를 제가 따로 저장해놨다가 그걸 써야할거 같은데.. 그 정적변수를 어떻게 따로 저장할 수 있는 방법이 없을까요?
-
딥레드 2023-08-03
내부에 정적변수가 있을수도 없을수도 있습니다.
멀티스레드 환경에서 잘 되는 c 라이브러리는 정적변수 없이 일이 진행되거나 상당히 복잡한 내부 사정을 겪은뒤에 결과가 나오기 때문에(한마디로 구현이 어떻게 되있는지 낸들 알수가 없으니) 딱히 정해진 방법 없습니다.
용케 방법을 알아내셔도, 라이브러리쪽에서 조금이라도 바뀌면 무용지물이라 쓸모가 없죠.
차라리 strtok 를 모사하는 좀 다른 물건을 만드신후에 그걸 이용하시는게 더 믿을만 하실겁니다.
저도