![이 플래그는 c 명령 인수에서 문자열로 처리됩니까? [폐쇄]](https://linux55.com/image/83014/%EC%9D%B4%20%ED%94%8C%EB%9E%98%EA%B7%B8%EB%8A%94%20c%20%EB%AA%85%EB%A0%B9%20%EC%9D%B8%EC%88%98%EC%97%90%EC%84%9C%20%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C%20%EC%B2%98%EB%A6%AC%EB%90%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
다음과 같은 것이 있다고 가정해 보겠습니다.
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
if (argv[1] == "-s") {
printf("success\n");
}
else{
printf("failed\n");
}
return 0;
}
셸에서 실행 파일을 실행하면 인쇄됩니다 failed
...
답변1
이는 실제 내용이 아닌 기본 주소를 비교하기 때문에 C에서 ==
문자열 비교에 또는 를 사용할 수 없기 때문입니다. !=
C에서 문자열을 제대로 비교하려면 strcmp
.