inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

리눅스 시스템 프로그래밍 - 이론과 실습

main 함수를 종료 할 때 반환값에 따른 차이가 존재하나요?

해결된 질문

291

OMG

작성한 질문수 38

1

일반적인 프로그램에서 main 함수는 return 0을 함으로써 종료하는데,

강의 중에 에러 상황에서는 -1을 반환하면서 프로그램을 종료시키는데

0과 -1의 반환 값의 차이로 인해 그것을 활용하는 무언가가 존재하기 때문에 이와 같은 방식을 사용하는 것인지 궁금합니다.

linux

답변 1

1

런잇(ProgCoach4U)

main함수에서 리턴하는 값은 exit code라 하여 프로그램이 실행된 후 종료하면서 어떤 코드값을 남길 수 있게 하는 것입니다. 프로그램 어디에서든 exit()API를 이용할 수도 있습니다. 주로 이 프로그램을 invoke한 부모 프로세스에서 exit code를 보고 성공 실패 여부 확인 및 실패시 어떤 이유로 실패했는지 판단할 수 있습니다.

system() API를 통해 어떤 프로그램을 구동시킨 후, 자식 프로세스가 리턴한 exit code는 WEXITSTATUS()으로 받아올 수 있습니다.(man 3 system 참조하세요)

bash에서 프로그램을 실행한 경우, 직전에 실행한 커맨드의 exit code는 $? 변수에 저장하게 되어 있습니다. 따라서 echo $? 명령을 하면 직전에 실행한 커맨드의 exit code를 받아올 수 있습니다.

더 궁금한 점 있으시면 추가 댓글 달아주세요~답변이 늦어져 죄송합니다 ㅠ

inotify 객체에 등록된 watch descriptor 해제 관련 질문

0

37

2

select API 실습 코드 질문

0

40

2

wsl에서 fcntl사용

0

73

2

inotify_event 구조체 질문 [파일 이벤트 - 라이브 프로그래밍]에서...

0

180

2

./stat 파일이름

0

273

2

fopen r, r+모드 차이

0

460

2

강의를 모두 수강하고 스스로 구현하면 좋을 과제나 프로젝트 주제가 있을까요?

0

326

1

pthread 질문

0

419

2

I/O Multiplexing(select) 질문

0

325

1

inotify.c. ret 질문

0

302

1

inotify.c 질의합니다.

1

317

1

child process

0

715

1

read/blocking

0

565

1

flock

0

565

1

system call

0

598

1

pthread_create() 함수 이용했을 때, thread가 두번 호출되는 것 처럼 나타납니다. 왜 그런것인가요?

0

487

1

fork() 함수 사용시 결과 관련 질문

0

371

1

exec 관련 궁금한 사항

0

450

2

파일 디스크립터와 FILE 구조체에 대한 질문

0

552

1

buf 선언에 따른 read() fail 문제

0

251

2

파일 이벤트 - 라이브 프로그래밍 에서 캐스팅 질문

0

254

1

2번 multi thread 방법 질문

0

242

1

segmentation fault 발생 관련 문의

1

842

1

라이브 코딩 실습 코드

0

235

1