디렉토리 내용 읽어들이기 #.개요 디렉터리를 읽으면 디렉터리에 담긴 파일들의 정보를 얻을 수 있다. 파일 한개당 하나의 구조체에 대응되어, 디렉터리를 읽으면, 구조체의 배열을 얻을 수 있다. 즉, 디렉터리는 바이트 배열임과 동시에 구조체의 배열인 것이다. 이 구조체를 디렉터리 엔트리라고 한다. #.디렉토리 열기 설명 : name 으로 지정한 디렉터리를 읽기 위해 open 하고 DIR 타입에 대한 포인터를 반환한다. DIR 타입은 디렉터리를 읽어 들이기 위한 스트림을 관리하는 구조체로 파일을 읽을때 사용한 FILE 타입에 대응하는 개념이다. 헤더 : dirent.h 형태 : DIR *opendir(const char *name); 인수 : char *name (열기 대상 디렉토리) 반환 : DIR 열기에 ..
#.데이터 검색과 가공, 처리 1.regcomp : regcomp을 통하여 정규식(특정한 규칙을 갖는 문자열)을 정의. regcomp() 함수가 성공하면, 0을 리턴합니다. 그렇지 않으면 regerror() 함수에 대한 호출에서 사용할 수 있는 오류 코드를 리턴하며 preg의 컨텐츠가 정의되지 않습니다. 2.regexec : regexec를 통하여 입력된 값이 정규식에 포함되었는지를 확인하고 매칭 정보를 리턴. regexec() 함수는 컴파일된 정규식 preg에 대해 널로 끝나는 string을 비교하여 두 사이의 일치 항목을 찾습니다. 일치 항목을 찾으면 regexec() 함수는 0을 리턴합니다. 일치 항목을 찾지 못하면 regexec() 함수는 REG_NOMATCH를 리턴합니다. 그렇지 않으면 오류를 ..
#.head 명령어 실습 1 *처리 대상은 표준 입력으로만한다. 즉, 실행인자로 파일 이름을 받는 기능은 생략한다. *출력할 줄의 수는 첫 번째 실행 인자로 전달 받는다. 예제 결과 #.head 명령어 실습 2 *파일의 경로를 실행 인자로 받아들이는 기능을 구현 *첫번째 인자는 이전처럼 출력할 라인 수, 두번째 이후 인자를 파일이름으로 간주한다. 예제 결과 #.head 명령어 실습 2 -2 *파일의 경로를 실행 인자로 받아들이는 기능을 구현 *첫번째 인자는 이전처럼 출력할 라인 수, 두번째 이후 인자를 파일이름으로 간주한다. 예제2-2 #.head 명령어 실습 3 *위에서 작성중인 head 명령어 소스에 getopt_long()을 사용해서 *옵션을 처리하는 기능을 추가하는 기능. 예제 결과 #.head ..
시그널의 개념 : 시그널은 프로세스에게 뭔가 발생했음을 알리는 간단한 메시지를 비동기적으로 보내는 것이다. 1 시그널의 발생 : 시그널은 소프트웨어 인터럽트다. 시그널은 비동기적으로 발생하며, 유닉스 운영체제가 프로세스에 전달한다. 예) *0으로 나누기처럼 프로그램에서 예외 상황이 일어나는 경우 *사용자가 ctrl + c 같은 인터럽트를 입력한 경우 *프로세스가 kill 함수와 같이 시그널을 보낼 수 있는 함수를 사용해 다른 프로세스에 시그널을 보내는 경우 2.시그널 처리방법 *프로세스가 받은 시그널에 따라 기본 동작을 수행한다. 각 시그널에는 기본 동작이 지정되어 있다. 대부분 시그널의 기본 동작은 프로세스를 종료하는 것이다. *프로세스가 받은 시그널을 무시한다. 프로세스가 시그널을 무시하기로 지정하면..
#.프로세스 생성 - system 함수 사용하기 예제 결과 #.fork 함수 특징 1.fork 함수를 호출하면, 2. 새로운 프로세스를 생성한다. 3. fork 함수로 생성한 자식 프로세스의 메모리 공간은 부모 프로세스의 메모리 공간을 그대로 복사해 만든다. 4.fork 함수는 부모 프로세스에는 자식 프로세스 pid를 리턴하고, 자식 프로세스에는 0을 리턴한다. #.자식프로세스가 상속 받는 대표적인 속성 1.실제 사용자 id 2.유효 사용자 id 3.실제그룹 id 4.유효 그룹 id 5.환경변수 6.열린 파일 기술자 7.시그널 처리 설정 8.현재 작업 디렉토리 #.프로세스 생성 - fork 함수 사용하기 예제 결과 #.프로세스 종료 유닉스는 프로세스가 종료되면 해당 프로세스가 어떻게 종료되었는지를 나타내..
#.pid 검색 - getpid, getppid 함수 사용하기 예제 결과 #.getpgrp, getpgid 함수 사용하기 예제 결과 #.getsid 함수 사용하기 예제 결과 #.environ 전역변수 사용하기 예제 결과 #.main 함수 인자 사용하기 예제 결과 #.getenv 함수 사용하기 예제 결과 #.putenv 함수 사용하기 예제 #.setenv 함수 사용하기 예제 예제파일 참고 : 유닉스시스템 프로그래밍(한빛미디어)