dev, tech/System2 프로세스 간의 통신 방법 1- 파이프 이용 프로세스간에는 공유되는 메모리가 없어서 메모리로 통신을 하기를 힘들다.그래서 커널에 파이프 생성을 요구하고, 요구해서 얻은 입출력 파일 디스크립터를이용하여 프로세스 간의 통신을 한다. unitsd.hint pipe(int fd[2]); 리턴값 -1: 실패 0: 성공인자: 정수형 배열 인자 2개를 같는 포인터 여기에서 fd를 인자로 전달하면 fd[0]은 출력할 수 있는 파일 디스크립터를, fd[1]에는 입력할수 있는 파일 디스크립터를 얻는다. fd[0]은 출력이지만 프로그램 상에서는 입력을 의미,fd[1]은 입력이지만 프로그램 상에서는 출력을 의미한다. 파이프는 프로세스에 종속되지 않는다. 이말은 프로그램 상에서 pipe함수를 사용하여 파이트를 생성하는 경우 이것은 프로세스 내에 존재 하는 것이 아니라 커.. 2007. 3. 17. int dup2(int fildes, int fildes2) #include int dup2(int fildes, int fildes2) fildes2가 열려 있다면 fildes2 항목을 닫고 fildes항목을 fildes2로 복사한다. int main(){ .... fd = open("my.file", CREATE_FLAGS, CREATE_MODE); .... if(dup2(fd, STDOUT_FILENO) == -1) { .... }} dup2 함수는 두 번째 매개변수(표준출력)에 해당하는 디스크립터를 닫고첫번째 매개변수(fd)를 두 번째 매개변수(STDOUT_FILENO)에 해당하는 항목에 복사한다. open호출 후,[0] 표준 입력[1] 표준 출력[2] 표준 에러[3] my.file에 쓰기 dup2 호출 후[0] 표준 입력[1] my.file에 쓰기[2] .. 2007. 3. 17. 이전 1 다음