내 코드는 완벽하게 작동하지만 내 simpleshell을 종료하면 세그먼트 오류가 발생합니다. atexit (결승전)의 결승전은 여전히 부름을 받고 제대로 작동합니다. atexit()가 코드에서 제거되면 simpleshell을 "종료"(즉 CNTRL + D) 할 수 있기 때문에 문제가 atexit()에 있다고 생각합니다. 그러나 atexit()가 내 코드 안에 있으면 (다시 말하면 그것이 어디 있는지 보시오), 종료 할 때 ("final"이 실행 되더라도) 세그먼트 화 오류가 발생합니다.seg 오류를 방지하기 위해 atexit() 함수를 사용해야하는 곳은 어디입니까?
static void final(void) {
flag = 0;
assign6 = fopen(".logfile.txt", "a");
assign62 = fopen(".temp_logger.txt", "r");
while(fgets(test2, sizeof(test2), assign62))
{
fprintf(assign6, test2);
}
fclose(assign6);
fclose(assign62);
remove(".temp_logger.txt");
}
항상 영원히 모든 관련 시스템 호출의 결과를 확인! – alk