fork() 함수
- 새로운 프로세스를 생성 : 자식 프로세스
- fork 함수를 호출한 프로세스 : 부모 프로세스
- 자식 프로세스는 부모 프로세스의 메모리를 복사
exec 함수군- 인자로 받은 다른 프로그램을 자신을 호출한 프로세스의 메모리에 덮어씀
- 프로세스가 수행중이던 기존 프로그램 중지되고 새로 덮어쓴 프로그램 실행
- fork 함수와 연결해 fork 생성한 자식 프로세스가 새로운 프로그램을 실행하도록 함
프로그램 안에서 다른 프로그램을 실행해 새로운 프로세스를 생성하는 것
프로세스 생성 함수
① 프로그램 실행
int system(const char *string);
② 프로세스 생성
pid_t fork(void);
pid_t vfork(void);
프로그램 실행 : system(3) : 프로그램 안에서 새로운 프로그램 실행
fork(2)
① 새로운 자식 프로세스 생성
② 성공 시 부모는 자식 프로세스의 ID 리턴, 자식 프로세스는 0 리턴, 실패 시 –1 리턴
**프로세스 종료
- 사용중인 프로세를 종료을 의미
- 프로세스가 마지막 명령 실행, 종료하여 운영체제에 프로세스의 삭제 요청
종료 함수
exit() 함수 활용
프로세스 종료
void exit(int status);
void _exit(int status);
종료 시 수행할 작업 지정
int atexti(void (*func)(void));
컴파일(compile)
C나 자바 등의 고급 언어로 쓰인 프로그램을 번역하고, 컴퓨터에서 실행할 수 있는 기계어 프로그램으로 고치는 과정
GCC
- GNU Compiler Collection
- GNU(GNU is Not Unix) 프로젝트의 프리웨어(freeware) 컴파일러. 본래 C 언어용 컴파일러로 시작하였으므로 GNU C Compiler의 약자였으나 2.9 버전에 이르러 C뿐만이 아니라 오브젝티브(Objective) C, 파스칼(Pascal), 에이다(Ada)와 같은 언어 및 Linux, Solaris 2, 윈도우 NT 등의 많은 운영체제도 지원하면서 GNU Compiler Collection으로 개명