리눅스에는 '프로그램'과 그 프로그램이 실행되는 환경인 '프로세스'라는 개념이 있다. 제목으로 써놓은 함수들이 바로 해당 프로세스를 제어하는 함수들이다. 1. fork() #include pid_t fork(void); fork()는 기존 프로세스가 새 프로세스를 생성할 때 사용하는 시스템 호출 함수이다. fork()함수를 사용하여 생성한 프로세스를 자식 프로세스라고 하며, 함수가 호출된 기존 프로세스를 부모 프로세스라고 한다. fork()함수는 한번 호출되나, 호출한 프로세스에 따라 다른 값을 리턴한다. 부모 프로세스에는 새로 생성된 자식 프로세스의 ID를 리턴하고, 자식 프로세스에는 0을 리턴한다. 프로세스 생성에 실패한 경우는 -1을 리턴하고 errno값을 갱신한다. 부모 프로세스는 자식 프로세스의..
5. getc(3), fgetc(3), getchar(3) + ungetc(3) #include int getc(FILE* fp); int fgetc(FILE* fp); int getchar(); int ungetc(int c, FILE* fp); @param fp: 파일 스트림형 포인터 @return: 성공시 다음 문자를 int로 변환하여 리턴, 파일 끝이나 에러시 EOF 리턴 한 번에 하나의 문자를 읽는 라이브러리 함수. getc()와 fgetc()는 주어진 스트림형 포인터에서 한 문자씩 읽고 int로 변환한 다음 리턴하고 매크로와 함수로 구현되었다는 차이가 있다. getchar()는 stdin으로부터 문자 하나를 입력받는다. #include #include int main() { int charac..
FDT, FT, IT - FDT(파일디스크립터 테이블) : 프로세스마다 한개씩 가지고있음. 0:stdin, 1:stdout, 2:stderr로 자동할당, 3부터 파일 open시 할당된다. 파일을 시스템 프로그래밍 차원에서 바이트단위의 입출력으로 다룰 수 있게 한다. - FT(파일 테이블) : 모든 프로세서가 오픈한 파일에 대한 참조. 파일디스크립터 테이블에서 참조하는 수 - IT(아이노드 테이블) open(2) 파일을 열거나 생성할 때 사용하는 system call 함수 #include #include #include int open(const char* pathname, int oflag); int open(const char* pathname, int oflag, mode_t mode); @param..
개요 ㆍ 표준 입출력 라이브러리를 사용하기 위해서는 stdio.h를 포함시켜야 한다. #include ㆍ 표준 입출력 라이브러리는 고수준 입출력 함수이다. 참고로 저수준 입출력 함수는 system call(시스템 호출 함수)를 의미한다. ㆍ고수준 함수는 스트림형 구조체(FILE, DIR)를 사용한다. 바이트 단위로 입출력을 하는 것이 아니라 버퍼를 통해 읽고 쓰기 작업을 하기 때문에 문자단위, 행단위, 버퍼 단위로 다양하게 입출력이 가능하다. ㆍfopen류 함수호출 성공시 FILE포인터가 리턴되고, 실패시 NULL 리턴. 실패 이유에는 파일이 존재하지 않거나, 접근권한이 없거나, 한번에 파일을 열 수 있는 최대 개수를 초과하는 경우가 있다. 1. fopen(3) 매개변수로 들어온 경로의 파일을 매개변수의..