exec 함수

2019. 6. 1. 01:12임베디드/리눅스시스템프로그래밍

일반적인 사용방법으로 fork() 함수를 수행한 후 다른 프로그램을 실행하고 싶은 경우에 exec() 함수를 실행해서 프로그램의 코드를 새 프로세스에 로딩할 수 있다. exec() 함수를 실행 파일을 찾으면 기계어 코드인지 확인하고 기계어 코드인 경우에는 직접 실행하고, 기계어 코드가 아닌 경우에는 셸 스크립트로 인식해서 /bin/sh을 실행하고 주어진 실행 파일을 셸의 인자로 해서 셸 스크립트를 수행한다

 

https://github.com/surinoel/Linux-SP/blob/master/execl.c

home 디렉토리를 조회하려면 PATH를 아래와 같이 기입할 수 있다

execl("/bin/ls", "ls", "-al", getenv("HOME"), NULL);

 

exec 함수를 실행시킨 이후에는 완전히 다른 함수가 되므로 그 이후에 작성되는 명령어 대해서는 수행되지 않는다. 다음 예제에서는 execl 이후에 "After exec"을 출력하지 않는 것을 알 수 있다

 

https://github.com/surinoel/Linux-SP/tree/master

 

 

'임베디드 > 리눅스시스템프로그래밍' 카테고리의 다른 글

리눅스 타입 자료형  (0) 2019.06.01
tgid(Thread Group ID)  (0) 2019.06.01
sudo 권한을 사용하는 경우  (0) 2019.05.30
Data Transfer - Named Pipe(FIFO)  (0) 2019.05.29
파일 삭제 unlink  (0) 2019.05.29