간단한 쉘을 작성하고 있습니다. 나는 명령 행을 토큰 화하여 파서를 execvp
으로 보내도록 썼다. 파싱하는 동안 문자 &
을 확인하고 \0
으로 바꾸고 싶습니다. 나는 포인터로 작업 중이며 진행 방법에 약간 혼란 스럽다. 여기 내 파서 코드는 다음과 같습니다.C에서 포인터를 사용하여 명령 줄 구문 분석 및 문자 바꾸기
나는 포인터를 사용하고 있기 때문에, 나는 원하는 것을 대체하는 데 어려움을 겪고 있습니다. 위의 배열에 해당하는 배열을 사용해야합니까, 아니면 쉬운 수정이 있습니까? 기본적으로, 을 &
으로 읽은 경우 으로 바꾸려면 코드를 1
으로 바꾸고 싶습니다. 포인터를 사용하는 문자 만 바꾸는 방법이 있습니까?
그냥'strtok' 이상'strtok_r'을 사용하십시오 : -
편집 즉시
*args = NULL
전에 그런 짓을, 오른쪽 끝에서&
을 확인합니다. 오류가 발생하기 쉽습니다. – abligh@abligh 당신은 매우 옳습니다.하지만 'strtok_r()'은 표준 C가 아니며 대부분 컴파일러 확장입니다. –
@SouravGhosh가 잘못되었습니다. 이것은 POSIX 함수입니다 : http://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok_r.html – abligh