프로세스 생성(exec)

2021. 3. 8. 18:23Computer(인강)/시스템 프로그래밍

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 프로세스 생성(exec)에 대해 배워보도록하겠습니다

바로 시작하겠습니다

 

 

 

fork()시스템콜과 exec()시스템콜

 

exec() 시스템콜 family

 

execl() 시스템콜의 예

전체 파일 이름을 맨앞의 첫번째 인자로 둠, 두번째 인자는 1개~3개 등 이 될 수 있음.

여기서 잠깐, argv가 뭐였지..

execl() 시스템콜이 제대로 실행이 됐다면 아래가 실행이 안될것.

 

 

execl()과 execlp() 시스템콜 사용법

 

execle() 시스템콜의 사용법

 

execv(), execvp(), execve() 시스템콜 사용법

 

 

 

인자를 다른 변수로 만들어서 미리 넣어줄 수 있다..!

execve() 시스템콜은 환경변수도 미리 만들고, 인자도 미리 만들었네요



정리

 

p로 끝나는 execlp()

환경변수를 보고 실행파일을 실행하겠다.

전체 디렉토리명까지 넣어줄 필요는 없다.

 

 

execl()은 파일명을 전체경로 포함 넘겨줌

 

 

e가 맨 끝에 붙어있는 execle() 시스템콜은

환경변수를 포함해서 별도로 환경변수값들을 미리 설정해서 특별하게 넣어줘야한다

인자를 변수로 설정해서 넣어주겠냐, 아니면 직접써주겠냐의 차이이다,

 

execve() 시스템콜 예

 

execl() 시스템콜의 예 :

1. execl() 시스템콜을 실행시킨 프로세스 공간에 새로운 프로세스 이미지를 덮어씌우고, 새로운 프로세스를 실행 

2. perror() 함수가 호출된다는 의미는 새로운 프로세스 이미지로 덮어씌우는 작업이 실행되지 못했다는 의미

-> 즉, execl()시스템콜 실행 실패

 

728x90
반응형

'Computer(인강) > 시스템 프로그래밍' 카테고리의 다른 글

프로세스 생성(copy on write)  (0) 2021.03.09
프로세스 생성(wait)과 나만의 쉘만들기  (0) 2021.03.08
프로세스 생성(fork)  (0) 2021.03.08
프로세스ID 시스템콜  (0) 2021.03.08
프로세스ID  (0) 2021.03.08