본문 바로가기

lesson/system programming6

시스템 프로그래밍 05. 시스템 정보 // 운영체제 정보 검색: uname(2)#include int uname(struct utsname *buf); 위 함수는 운영체제 정보를 검색해서 utsname 구조체에 저장함 utsname 구조체는 아래 목록으로 구성되어 있음 sysname: 현재 운영체제 이름을 저장nodename: 네트워크 통신 시에 사용할 시스템의 이름을 저장release: 운영체제의 릴리즈 번호 저장version: 운영체제의 버전 번호 저장machine: 운영체제가 동작하는 하드웨어의 아키텍처 저장  // 시스템 자원 정보 검색: sysconf(3)#include long sysconf(int name);//name: 검색할 정보를 나타내는 상수 // 파일과 디렉터리 자원 검색: fpathconf(3)/pathconf(3)#.. 2024. 8. 22.
시스템 프로그래밍 04. 파일 입출력 1. 저수준 입출력 파일 읽기 read(2)#include ssize_t read(int filedes, void *buffer, size_t count); 파일 쓰기 write(2)#include // filedes: 파일 기술자, buffer: 기록할 메모리를 담은 메모리 영역// size: buffer의 크기ssize_t write(int filedes, const void* buffer, size_t size); 파일 오프셋 위치 지정 lseek(2)#include #include // filedes: 파일 기술자, offset: 이동할 오프셋 위치, whence: 오프셋의 기준 위치off_t lseek(int filedes, off_t offset, int whence); 파일 기술자 복사 du.. 2024. 8. 20.
시스템 프로그래밍 03. 파일 다루기 01. 개요 02. 파일 정보 검색 파일 정보 검색 : stat(2) SYNOPSIS #include #include #include int stat(const char *pathname, struct stat *statbuf); 파일 기술자로 파일 정보 검색 : fstat(2) SYNOPSIS #include #include #include int fstat(int fd, struct stat *statbuf); 03. 파일 권한 접근 제어 파일 접근 권한 검색 : access(2) SYNOPSIS #include int access(const char *pathname, int mode); 파일명으로 접근 권한 변경 : chmod(2) SYNOPSIS #include int chmod(const ch.. 2024. 1. 25.
시스템 프로그래밍 02. 디렉터리 다루기 01 개요 리눅스에서는 파일은 파일면, inode, 데이터 블록으로 구성된다. inode는 번호로 저장되며, 파일의 소유자나 크기 등의 정보와 실제 데이터를 저장하고 있는 데이터 블록의 위치를 나타내는 주소들이 저장되어 있다. 02 리눅스 파일의 특징 리눅스 파일에는 일반 파일, 특수 파일, 디렉토리로 구분할 수 있다. 03 디렉터리 생성과 삭제 디렉터리 생성 : mkdir(2) SYNOPSIS #include #include int mkdir(const char *pathname, mode_t mode); 디렉터리 삭제 : rmdir(2) SYNOPSIS #include int rmdir(const char *pathname); 04 디렉터리 관리 현재 작업 디렉터리의 위치 검색 1 : getcwd(3.. 2024. 1. 25.
시스템 프로그래밍 01.리눅스/유닉스 시스템 프로그래밍의 이해 01. 리눅스/유닉스 시스템 프로그래밍이란 - 시스템에서 제공하는 시스템 콜을 이용해 프로그램 작성하기 -대다수 시스템 프로그래밍은 리눅스 기반으로 진행됨 02. 리눅스/ 유닉스 시스템 표준 - POSIX라는 유닉스 기반 인터페이스에 대한 이해 필요 - ANSI C 표준을 준수해야 한다 - 리눅스에서 안드로이드 등 우리가 일반적으로 많이 쓰는 운영체제들도 많이 파생되었다. 03. 시스템 프로그래밍 - 시스템 호출과 C언어 라이브러리는 실행 과정이 다르다. - man 명령어를 통해 각 함수가 시스템 호출인지 라이브러리 함수인지 알 수 있다. - 명령어에 대한 설명은 1번, 시스템 호출은 2번, 라이브러리 함수는 3번 섹션에 위치하고 있다. - errno-base.h에서 오류 코드 확인할 수 있다. #ifn.. 2023. 12. 15.
시스템 프로그래밍 00. 시작 - 학습동기: 운영체제론 실습을 하면서 선수 과목인 (리눅스)시스템 프로그래밍에 대한 이해가 부족함을 체감 - 기간: 2023.11.24 ~ 2023.11.26 (금, 토, 일); 짧은 기간 동안 하루 6시간씩 빠르게 진행 예정 - 진행방식: 3일 정도의 짧은 기간 동안 정해진 책의 이론 내용을 숙지하고 코드로 실습을 진행하기 - 참고도서: 시스템 프로그래밍 https://www.yes24.com/Product/Goods/104254138 시스템 프로그래밍 - 예스24 핵심 시스템 호출 함수 완전 정복!리눅스와 유닉스 시스템에서 제공하는 함수의 원형과 각각의 인자를 소개하고 135개 예제를 실습하면서 그 사용 방법을 자연스럽게 익힐 수 있도록 구성했다. www.yes24.com Part 01 시스템 프로.. 2023. 11. 24.