본문 바로가기

not기초/시스템프로그래밍

[시스템프로그래밍]버퍼 예제 - 파일 출력 프로그램 모든 포스트 목록 파일 출력 프로그램 코드 파일 텍스트를 출력하는 프로그램을 만듭니다. 기능은 다음과 같습니다 파일의 모든 텍스트 출력 n : 해당 줄의 텍스트 출력 m-n : 해당 줄의 범위 출력 l, m, n : 해당 줄의 텍스트 출력 q : 프로그램 종료 결과 과제 해결!
[시스템프로그래밍]파일 시스템 예시 - 명령어 ls 모든 포스트 목록 명령어 ls 구현 코드 ls 명령어의 다양한 옵션을 구현합니다 ls -s ls -l ls -R li -i ls -F 결과
[시스템프로그래밍]포스트 목록 시스템프로그래밍 리눅스 시스템 개요 시스템 호출 #개요 파일 시스템 시스템 호출 open()/creat()/close() 시스템 호출 read()/write()/dup()/dup2() 임의 접근 파일 파일 기본 예제 파일 잠금 예제 버퍼 예제 참고 Linux 포스트 목록
[시스템프로그래밍]파일 잠금 예제 - 데이터베이스 접근 제한 모든 포스트 목록 데이터베이스 제한 접근 프로그램 코드 접근하는 데이터베이스에 누군가 이미 접근을 했다면, 접근을 제한하는 프로그램을 만듭니다. 누군가 이미 쓰기 모드로 접근 했을 때, 읽기 모드로 데이터베이스에 접근하였을 경우 누군가 이미 쓰기 모드로 접근 했을 때, 쓰기 모드로 데이터베이스에 접근하였을 경우 누군가 이미 접근 했을 때, 데이터베이스에 접근하면 오류를 출력하면서 바로 중지시킬 경우 2번의 경우를 함수를 새로 작성하여 프로그램 만들기 결과 위의 터미널에서 데이터베이스에 쓰기 모드로 접근하였을 경우, 다른 터미널에서 데이터베이스에 쓰기 모드로 접근하였을 경우입니다. 그럴 경우 읽기 모드로 접근한 터미널에서는 쓰기 모드가 끝날 때까지 대기합니다. 위의 터미널에서 데이터베이스에 쓰기 모드로 접..
[시스템프로그래밍]파일 기본 예제 - 학생정보 시스템 만들기 모든 포스트 목록 데이터베이스 프로그램 코드 학생의 학번, 이름, 점수를 저장하는 데이터베이스를 만듭니다. 데이터베이스의 기능은 다음과 같습니다. 데이터 베이스를 생성한다 학번을 입력하면 그 학생의 정보가 출력된다 학번을 입력하면 그 학생의 점수를 수정할 수 있다 어떤 학생의 정보가 없을 시, 그 학생의 정보를 추가한다 모든 학생 정보을 출력한다 종료한다 결과 데이터베이스 프로그램을 실행하면 목록이 뜨고 메뉴를 선택할 수 있습니다. 1번 메뉴를 선택하면 데이터 베이스를 만들 수 있습니다. 2번 메뉴를 선택하면 학번으로 학생 정보를 검색할 수 있습니다. 검색 후 다시 검색할 지 묻고 그 결과에 따라 다시 검색하거나 메뉴로 돌아갈 수 있습니다. 3번 메뉴를 선택하면 학생 정보를 수정할 수 있습니다. 학번으로..
[시스템프로그래밍]임의 접근 파일 모든 포스트 목록 임의 접근 파일 특정 위치에 있는 데이터를 가져오거나 수정해야 할 때 처음부터 찾는 것은 비효율적이다. 임의 접근 파일(random access file)은 파일 위치 포인터를 이용하여 원하는 지점으로 이동하여 데이터를 읽거나 쓸 수 있다. 파일 위치 포인터 파일 내에 읽거나 쓸 위치인 현재 파일 위치(current file position)을 가리킨다 lseek() 임의의 위치로 파일 위치 포인터를 이동시킬 수 있다 현재 파일 위치를 whence를 기준으로 offset만큼 이동 prototype #include off_t lseek(int fd, off_t offset, int whence); 성공 시 현재 위치, 실패 시 -1 리턴 offset : 기준점으로부터 (바이트 단위의) 거..
[시스템프로그래밍]시스템 호출 read()/write()/dup()/dup2() 모든 포스트 목록 read() fd가 나타내는 파일에서 n바이트만큼의 데이터를 읽고 읽은 데이터는 buf에 저장한다 prototype #include ssize_t read(int fd, void *buf, size_t nbytes); //size_t : unsigned integer //ssize_t : signed integer 성공 시 읽은 바이트 수, 파일 끝을 만나면 0, 실패 시 -1을 리턴한다 읽을 데이터가 충분하면 n바이트를 읽고, 읽을 데이터가 충분치 않다면 있는 만큼 읽는다 fsize.c /*파일 크기를 계산하는 프로그램*/#include #include #include #define BUFSIZE 512 int main(int argc, char *argv[]) { char buffe..
[시스템프로그래밍]시스템 호출 open()/creat()/close() 모든 포스트 목록 open() path가 나타내는 파일을 oflag 모드로 연다 prototype #include #include #include // 파일을 새로 만들때의 권한 int open (const char *path, ing oflag, [mode_t mode]; 성공 시 파일 디스크립터를, 실패 시 -1을 리턴한다 oflag : 대상의 입출력 방식을 지정함 O_RDONLY : 읽기 모드, read() 호출 가능 O_WRONLY : 쓰기 모드, write() 호출 가능 O_RDWR : 읽기/쓰기 모드, read()/write() 호출 가능 (여기까지 필수 지정/다음부터 선택 지정) O_APPEND : 파일 끝에 데이터 첨부 O_CREAT : 해당 파일이 없는 경우 파일 생성 mode는 생성할 ..