2021. 3. 8. 18:23ㆍComputer(인강)/시스템 프로그래밍
안녕하세요 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()시스템콜 실행 실패
'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 |