본문 바로가기

전체 글77

3.1 파이프 3.1 파이프3.1.1 | 명령$ ls /etc | grep init| (파이프명령) 을 통해 "ls /etc" 명령의 출력 결과를 "grep" 명령에 전달할 수 있다."grep" 명령은 전달받은 내용 중에서 init이 포함된 라인을 출력한다. 3.1.2 프로세스 파이프FILE* popen(const char* command, const char* type);기능: 파이프를 생성 -> fork() -> 쉘 실행 -> command 실행 -> 프로세스 생성리턴: 성공 시 주소, 실패 시 NULL 리턴type: "w", "r" //각각 쓰기전용, 읽기전용 int pclose(FILE* stream);기능: 파이프를 닫고 프로세스 종료를 기다림리턴: 실패 시 -1, 외에 command를 실행한 쉘의 종료 상태.. 2018. 6. 27.
2.2 시그널 2.2 시그널2.2.1 스탠다드 시그널 Signal Value Action Comment SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process SIGINT 2 Term Interrupt from keyboard SIGQUIT 3 Core Quit from keyboard SIGILL 4 Core Illegal Instruction SIGABRT 6 Core Abort signal from abort(3) SIGFPE 8 Core Floating-point exception SIFKILL * 9 Term Kill signal SIGSEGV 11 Core Invalid memory reference SIGPI.. 2018. 6. 27.
2.1 프로세스 2.1 프로세스2.1.1 개요프로세스는 현재 실행중인 하나의 프로그램리눅스는 멀티태스킹이 가능한 운영체제이므로 동시에 여러 개의 프로세스를 실행할 수 있다.ps 명령으로 현재 프로세스 목록을 확인해보자.[프로세스를 실행한 유저의 ID] [PID] [PPID] [COMMAND] 정보가 출력된다. PID 0 : 커널PID 1 : initPID 2 : kthreadd init은 일반 프로세스들의 조상, kthreadd는 커널 스레드로써 모든 커널 스레드의 부모가 된다. 프로세스마다 왼쪽 가상메모리 공간이 따로 존재한다.프로세스의 주소공간은 세그먼트 블럭으로 나뉘어져 있다."프로세스는 혼자서 가상메모리 공간을 다 사용한다고 생각한다" 2.1.2 프로세스 생성int system(const char* command.. 2018. 6. 27.
1.6 파일 입출력 1.6 파일 입출력1.6.0 main()$ ls -l /home/user 를 main()함수는 어떻게 인식할까?int main(int argc, char** argv) 1.6.1. 파일 식별자각 프로세스마다 File Descriptor(파일 식별자)가 존재.fd = open("test.txt", O_RDWR); //int 형 파일식별자가 배정됨. 하나의 프로세스는 동일한 파일을 여러번 열 수 있다.여러 프로세스가 하나의 파일을 동시에 열 수 있다.디바이스 드라이버, 파이프, 소켓 등도 파일 식별자를 통해 파일처럼 액세스! 1.6.2 저수준 파일 입출력 함수int open(const char* pathname, int flags);int open(const char* pathname, int flags, .. 2018. 6. 27.