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 |