1. int sleep(n) 함수는 n 초 동안 멈추었다가 수행을 재개하도록 하는 함수이다. 이러한 sleep() 함수를 signal, alarm, pause 함수를 써서 구현해보라.
힌트:
signal(SIGINT, sig_int);
unsigned int alarm(unsigned int second);
int pause();
#define SIGALRM 14

 

2.  유닉스/리눅스의 쉘에서 파이프는 한 프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 연결하는 기능이다. 예를 들면,

$ proc1 | proc2

와 같이 수행하면 proc1의 표준출력이 proc2의 표준입력으로 연결이 된다. 이러한 기능을 하는 프로그램 코드를 다음과 같이 작성해보자(코드의 일부분만 보여줄 것).


- 부모프로세스(proc1)는 fork()전에 파이프 생성
- fork() 호출
- 부모프로세스는 표준출력을 가리키는 파일디스크립터가 파이프를 가리키도록 함(dup*()함수 이용)
- 자식프로세스는 표준입력을 가리키는 파일디스크립터가 파이프를 가리키도록 함
- 자식프로세스는 exec*() 호출을 통해 proc2 수행

hint1:
int  dup (int filedes);
int  dup2 (int filedes , int filedes2);
hint2:
exec*() 호출의 정확한 syntax는 적지 않아도 됨.

이거풀어주면 내가인정해준다