다른 프로그램을 실행하는 내 C 프로그램에서 make를 호출합니다. 표준 출력과 표준 오류 모두를 파일로 리디렉션하고 있습니다. 그러나 세그먼트 화 결함으로 인해 make가 실행하는 프로그램이 종료되면 코어 덤프가 생성되어 make를 호출하는 주 프로그램의 콘솔 (표준 출력)에 인쇄됩니다.코어 덤프가 파일로 리디렉션
어떻게하면이 문제를 해결할 수 있으며 콘솔에 코어 덤프가 표시되지 않습니까?
다음
는 호출하는 내 코드 메이크업 : make_logs 파일이 '개방'감사
을 사용하여 열입니다int pid = fork();
if(pid==0){
dup2(make_logs, 1);
dup2(make_logs, 2);
close(make_logs);
execvp (args[0],args);
}
명령 줄에서 프로그램 (또는 다른 프로그램)을 실행해도 동일한 문제가 없는지 확인하십시오. – Keith
예, 동일한 프로그램을 실행하면 코어 덤프가 있음을 확인할 수 있습니다. 그러나 표준 출력과 오류가 모두 리디렉션되고 있기 때문에 이해할 수없는 것은 파일에 기록되어야하며 부모 프로세스까지 전파되지 말아야합니다 .. – user1479589
여기서 프로그램을'strace -f'로 실행하면, 프로세스의 모든 syscalls를보고 무엇이 어떻게 전파되는지 살펴 보겠습니다. – nos