유닉스의 탄생 유닉스 운영체제가 탄생하면서 어플들은 하드웨어에 종속되지 않고, 운영체제에 종속된다. 어플들은 무조건 운영체제를 거쳐서, 하드웨어나 메모리에 접근할 수 있다. 이전에는 어플들이 컴퓨터에서 돌아갈려면 컴퓨터에 설치된 하드웨어에 맞아야 했는데, 유닉스 탄생이 후 운영체제에만 맞으면 된다. 쉘의종류 프롬프트에서 $사인은 일반사용자를 뜻한다. #사인은 ROOT 사용자를 뜻한다. sudo (super user do) su (switch user) #.파일시스템의 구조 운영체제를 사용하는 이유는 쉘이라는 명령 프롬프트를 통해서 프로그램을 자유롭게 실행. 실행하려면 프로그램을 다운로드해야한다. 만약 리눅스에서 파일을 다운로드 하면 다운로드 후, 어떤 파일에 저장이 될까? cd / (change dire..
c언어 문자 치환 - 특정 문자 찾아서 바꾸기 5-1. c언어 파일입출력 함수를 이용해서 파일의 단어수 체크하기(응용예제) 5-2. c언어 파일함수로 특정 문자 찾기(응용예제) 이전 포스팅에서 c언어 파일,문자함수를 이용해서 특정 단어수를 체크해서 출력하고, 특정 문자가 포함되어 있는 열을 찾아서 출력해주는 예제를 살펴보았다. 이번에는 c언어 함수를 이용해서 파일에서 문자를 치환하는 예제를 살펴보려고 한다. 예를들어 파일 여러 줄에 hi 라는 단어가 있다면 전부 찾아서 hello 로 변경해주는 예제이다. c 파일을 컴파일 한 뒤 실행파일명 문자치환을할 파일명 치환할대상문자 치환문자 순으로 입력하면 된다. 예) ./searchword.o log caa can searchword.o 실행파일에서 log 파일..
c언어 파일함수로 특정 문자 찾기 지난 포스팅(c언어 파일입출력 함수를 이용해서 파일의 단어수 체크하기)에서는 파일 함수를 이용해서 특정문자가 포함되어 있는 줄을 찾아서 출력하는 예제를 살펴 보았다. 예를들어 onec one time라는 문자가 있고 one을 찾으면 onec one time 노란색으로 표시된 두 문자가 one을 포함하고 있기 때문에 one을 포함하는 단어는 2개라고 출력했다. 이번에는 c언어 파일 함수를 이용해서 찾을려고 하는 문자와 일치하는 경우에만 카운터를 해서 일치하는 문자수와 해당 라인을 출력해주는 예제를 살펴보자. 이번에는 one 이라고 검색하면 onec one time 처럼 one 만 찾아서 일치하는 단어는 하나라고 표현해 준다. 예제 searchword.c 아래 소스를 보면 ..
c언어 파일입출력 함수를 이용해서 파일의 단어수 체크하기 C언어의 파일 입출력 함수를 이용해서 파일을 읽고, 그 파일에서 찾고 싶은 단어의 개수를 검색해서 총 몇개의단어가 있는지, 그 단어가 있는 라인은 몇번 째 줄인지를 출력해주는 예제를 만들어 보자. 예제에서 사용된 함수는 아래와 같다. 1.access(파일명, 모드) : 프로세스가 지정한 파일이 존재하는지, 읽거나 쓰거나 실행이 가능한 지를 확인하는 함수다. 접근 가능하면 0, 접근이 불가능하면 -1 리턴한다. 2.perror(내용) : 오류 출력 함수. 3.fopen(파일경로, 모드) : 파일 기술자를 연다. 4.feof(파일 기술자) : 파일을 읽다가 파일의 끝이면 1, 끝이 아니면 0을 반환한다. 5.fgets(담을변수, 변수사이즈, 파일기술자..
#.키와 식별자 시스템 V IPC를 사용하려면 IPC의 객체를 생성해야 하는데, 이를 위해 공통적으로 사용하는 기본 요소가 키와 식별자이다. #.키생성 방법 -키로 IPC_PRIVATE를 지정한다 IPC_PRIVATE를 키로 지정해 생성된 식별자를 서버와 클라이언트 모두 알 수 있게 해야 한다. fork 함수로 생성된 부모-자식 프로세스 간 통신에서 유용하게 사용할 수 있다. -ftok 함수로 키를 생성한다. ftok 함수는 경로명과 숫자값을 받아서 키를 생성한다. 따라서 서버와 클라이언트가 같은 경로명과 숫자값을 지정하면 공통 식별자를 생성할 수 있다. *상수 : IPC_PRIVATE *키 생성 : key_t ftok(const char *path, int id); *IPC 정보 검색 : ipcs [-..
#.파이프 파이프는 두 프로세스 사이에서 한 방향으로 통신할 수 있도록 지원한다. 종류 *이름있는 파이프 *이름없는 파이프 #.이름없는 파이프 부모-자식 프로세스 간에 통신할 수 있게 해준다. 부모 프로세스에서 fork 함수를 통해 자식 프로세스를 생성하고, 부모 프로세스와 자식 프로세스 간에 통신하는 것이다. (자식 프로세스가 출력한 내용을 부모 프로세스에서 읽을 것인지 둘 중 한 방향을 선택해야 한다.) *간단한 파이프 생성 FILE *popen(const char *command, const char *mode); int pclose(FILE *stream); *복잡한 파이프 생성 int pipe(int fildes[2]); #.파이프 생성: pipen(3) #include FILE *popen(c..