나를 따라와이전 기사, 사라지지 않는 성가신 버그도 있습니다.
bash
나는 Linux에서 이 명령에 대한 에뮬레이터를 작성했습니다.
다음을 사용하여 한 번에 코드를 실행할 때:
ls Debug/ | grep r
ls >> file.jer & ls & ls & ls &
ls >> file.jer
ls > file1.rrr
ls & ls | grep e
ls & ls & ls &
ls Debug/ | grep r
ls Debug/ > k.out
ls Debug/ >> k.out
exit
ls >> file.jer
그런 다음 프로그램은 세 번째 줄에 씁니다 ls: cannot access : No such file or directory
. 프로그램을 실행할 때마다 Enter 키를 누릅니다.각기그러면 올바른 출력이 제공됩니다. 여러 번 디버깅을 시도했지만 문제를 찾을 수 없었습니다.
특정 문제: 코드를 실행하고 을 클릭하면 ls Debug/ | grep r
올바른 출력이 표시됩니다. 다음으로, 를 클릭하면 ls >> file.jer & ls & ls & ls &
여기에 있는 코드도 제대로 실행됩니다 . 하지만 을 클릭하면 ls >> file.jer
매우 잘못된 일이 발생하고 그 소스를 찾을 수 없는 것 같습니다. 다시 명령의 출력은 다음과 3rd
같습니다 .해당 파일이나 디렉터리가 없습니다., 그러나 한 번에 실행하면 파일이 file.jer
현재 경로의 내용을 추가하기 때문에 분명히 잘못된 것입니다.
main
하나 , 두 개의 .h
파일과 두 개의 파일이 있습니다 .c
.
답변1
문제가 해결되었습니다!
오류가 발생하는 이유는 char**
변수를 변경하는 함수에 변수를 보낸 다음 free
해당 변수를 다시 main에 넣기 때문입니다. 이는 허용되지 않으므로 하나를 보내야 char***
모든 것이 해결됩니다.
다들 감사 해요.