Linux
-
C언어 라이브러리를 활용한 Linux 제어 - 프로세스(exec)Linux 2020. 4. 23. 22:10
앞서 언급했던 fork와 같이 프로세스 자원 관리를 하는데 있어 쓰이는 exec...함수에 대해 포스팅 하고자 한다.fork는 원래 프로세스에서 자식 프로세스를 생성하고 그것을 병렬적으로 사용한다.exec는 자식 프로세스를 본래 코드에서 의도했던 방향과는 아예 다른 프로세스를 형성하기도 하지만오류나 특이점이 생긴 본 코드에서도 프로세스를 관리해주는 역할을 할수도 있다. 위의 그림같은 상황을 생각해보자.fork()를 통해 두가지 프로세스를 생성했다.그리고나서 자식프로세스를 미리 생성해둔 실행프로그램인 fork를 실행하게 두었다.이 경우에는 사실 기본적으로는 잘못된 방법이다.(이유는 후술 할것이다.)어찌 돼었든, 자식 프로세스는 기존의 부모 프로세스와는 전혀 다른 액션을 하는 fork실행 파일의 액션을 취한..
-
C언어 라이브러리를 활용한 Linux 제어 - 프로세스(fork)Linux 2020. 4. 23. 21:49
일반적으로 리눅스에서 코드작성을 통해, 새로운 프로세스를 만들고 사용하기 위해 C언어는 library에서 fork, exec.. 관련 함수들을 내장하고있고 리눅스 운영체제 또한 병렬적인 프로세스 사용이 가능한 운영체제이기 때문에 굉장히 유용하게 하나의 코드에서 여러가지 프로세스를 생성하고 또 사용할수 있다. 그중에서도 먼저 fork를 보자 fork 함수는 자식 프로세스를 생성하는 함수다. 예를들어, 위와 같이 자식 프로세스를 int자료형으로 선언된 변수에 집어 넣을수 있고 성공했을때 0을 반환하며, 실패시 -1, 그외에는 자기자신의 프로세스를 반환하게된다. 이러한 성질 때문에 fork는 지금 코드에서 완전히 다른 프로세스를 실행시킬수 있는 요소를 만들어 주기도하고 한 코드내에서 다른형태의 액션을 취하게끔..