System Programming8 [System Programming] 10장 파이프 (Named PIPE) 1. FIFO 특수 파일 생성 : mknod 명령 mknod 명령의 특징 FIFO 파일뿐만 아니라 특수 파일도 생성하는 명령 mkfifo 명령으로 BIT_FIFO라는 FIFO 파일을 생성할 경우 2. mknod() mknod( ) 함수의 특징 첫 번째 인자인 pathname으로 지정한 경로에 특수 파일을 생성 두 번째 인자인 mode에는 특수 파일의 종류와 접근 권한을 지정 mode에 지정하는 특수 파일의 종류는 다음 중 하나 S_IFIFO : FIFO 특수 파일 S_IFCHR : 문자 장치 특수 파일 S_IFBLK : 블록 장치 특수 파일 S_IFREG : 일반 파일 S_IFSOCK : 유닉스 도메인 소켓 파일 세번째 인자인 dev는 생성하려는 특수 파일이 블록 장치 특수 파일이나 문자 장치 특수 파일.. 2023. 10. 30. [System Programming] 10장 파이프 (Unnamed PIPE) 1. 파이프 (PIPE) 파이프의 개요 두 프로세스 사이에서 한 방향으로 통신할 수 있도록 지원하는 것 쉘에서 "|"기호가 파이프를 의미 쉘에서 파이프 기능은 한 명령의 표준 출력을 다음 명령에서 표준 입력으로 받아 수행하는 것을 의미 $ cat test.c | more 앞에 있는 명령인 cat test.c의 표준 출력을 다음 명령인 more의 표준 입력으로 사용 위 예를 실행하면 test.c를 화면 단위로 출력 파이프는 이름 없는 파이프(익명 파이프)와 이름 있는 파이프로 구분 2. 이름 없는 파이프: pipe 특별한 수식어 없이 그냥 파이프라고 하면 일반적으로 이름 없는 파이프(익명 파이프)를 의미 이름 없는 파이프는 부모-자식 프로세스 간에 통신을 할 수 있게 함 부모 프로세스에서 fork() 함수.. 2023. 10. 30. [System Programming] 7장 프로세스 실행 exec() 1. exec 함수군의 형태 exec 함수군은 6가지 형태가 있으며 각자 지정하는 인자가 약간씩 다름 인자로 전달한 pathname이나 file에 설정한 명령이나 실행 파일을 실행 arg나 envp로 시작하는 인자를 pathname이나 file에 지정한 파일의 main() 함수에 전달 각 함수별로 경로명까지 지정하거나 단순히 실행 파일명만 지정하는 등 차이가 있고 인자를 전달하는 형태에도 차이가 있음 2. 각 exec 함수군의 기능 execl() pathname에 지정한 경로명의 파일을 실행하며 arg0~argn을 인자로 전달 첫 인자인 arg0에는 실행 파일명을 지정 execl() 함수의 마지막 인자로는 인자의 끝을 의미 하는 NULL 포인터((char *)0)를 지정해야 함 pathname에 지정하는.. 2023. 10. 30. [System Programming] 7장 프로세스 종료 exit() 1. 프로그램 종료 : exit(3) exit( ) 함수의 특징 프로세스를 종료시키고 부모 프로세스에 종료 상탯값을 전달 이때 atexit() 함수로 예약한 함수를 지정된 순서와 역순으로 모두 실행 만일 atexit() 함수로 예약한 함수가 수행 도중에 문제가 발생해 리턴하지 못하면 exit() 함수의 나머지 과정도 수행되지 않음 exit() 함수는 프로세스가 사용 중이던 모든 표준 입출력 스트림에 데이터가 남아 있으면 이를 모두 기록하고 열려 있는 스트림을 모두 닫음 그 다음 tmpfile() 함수로 생성한 임시 파일을 모두 삭제하고 _exit() 함수를 호출 _exit() 함수는 시스템 호출인데 프로세스가 사용하던 모든 자원을 반납 2. 프로그램 종료 시 수행할 작업 예약 : atexit(3) ate.. 2023. 10. 30. 이전 1 2 다음