전체 글
-
프로그래밍 언어 Syntax 표현(기술)프로그래밍언어 2020. 4. 27. 20:12
Terminologies - Alphabet - String - Language (알파벳으로 만들 수 있는 모든 String 의 집합) - Sentence : Language 의 한 String - Lexeme : 의미적 요소의 최소 단위 - Token : lexeme 의 카테고리 - Language recognizer / generator (인식기, 생성기) Lexeme (어휘 항목) : 구문 기술이 아닌 어휘 명세에 의해 주어지는 것으로, literal, operator, special word 등으로 이루어짐 즉 프로그래밍 언어는 문자가 아닌 Lexeme 으로 이루어졌다고 말할 수 있음 프로그래밍 언어의 구문 기술에는 Lexeme 은 고려되지 않음 Syntax (구조, 문법) : expression..
-
C/C++ read 함수 - 파일을 읽는 함수C,C++ & Linux 2020. 4. 22. 01:28
read(2) 함수 기능 파일을 읽는 함수입니다. 함수 원형 #include ssize_t read(int fd, void *buf, size_t nbytes); 매개변수 int fd 읽을 파일의 파일 디스크립터 void *buf 읽어들인 데이터를 저장할 버퍼(배열) size_t nbytes 읽어들일 데이터의 최대 길이 (buf의 길이보다 길어선 안됨) 반환값 읽어들인 데이터의 길이 무조건 nbytes 가 리턴되는 것은 아님. 중간에 파일의 끝을 만난다면 거기까지만 읽기 때문 예제 #include #include #include #include #include #include #include "ssu_employee.h" int main(int argc, char *argv[]) { struct ssu_..
-
C/C++ lseek 함수 - 파일 커서(seek pointer) 조정C,C++ & Linux 2020. 4. 22. 00:23
lseek 기능 함수의 seek pointer (커서) 를 조정하는 함수입니다. 조정된 seek pointer 는 파일의 read/write 시 사용됩니다. 특정 위치부터 읽거나 쓰고싶을때 유용합니다. 파일을 처음 열면 최초의 seek position 은 0입니다. O_APPEND 플래그를 주어 열게되면 최초의 seek position 은 파일의 끝에 있습니다. 함수 원형 #include #include off_t lseek(int fd, off_t offset, int whence); 매개변수 int fd 조정할 파일의 파일 디스크립터 off_t offset 기준점으로부터 이동할 거리(offset) int whence 기준점 SEEK_SET(0) : 파일의 맨 앞 SEEK_CUR(1) : 현재 Seek..
-
C/C++ creat 함수 - 파일 생성C,C++ & Linux 2020. 4. 21. 23:41
crea 함수 기능 파일을 만들어주는 함수 (create 가 아님에 주의하자) 함수 원형 #include #include #include int creat(const char *filepath, mode_t mode); 매개변수 const char *filepath 생성할 파일의 경로 mode_t mode 생성할 파일의 접근 권한을 명시 기본 값 파일 : 0666 디렉토리 : 0777 아래 옵션들은 bitwise 연산으로 여러개를 동시에 사용가능함 S_IRWXU : 유저 읽기, 쓰기, 실행 권한 (Read, Write, Execute User) S_IRUSR : 유저 읽기 권한 (Read User) S_IWUSR : 유저 쓰기 권한 (Write User) S_IXUSR : 유저 실행 권한 (Execute..
-
C/C++ open 함수 - 파일 생성 / 읽기 / 쓰기C,C++ & Linux 2020. 4. 21. 23:22
Open 함수 기능 파일을 열거나 생성 후 열어주는 함수 함수원형 #include #include #include int open(const char *filepath, int flag); int open(const char *filepath, int flag, mode_t mode); 매개변수 const char *filepath 열고자 하는 파일의 경로 int flag 파일 열 때 사용할 옵션 O_RDONLY : 읽기 모드 (Read Only) O_WRONLY : 쓰기 모드 (Write Only) - 읽지 않고 쓰기만 하는 경우는 크게 많지 않음 O_RDWR : 읽기/쓰기 모드 O_CREAT : 파일 생성 O_APPEND : 파일을 쓰되 기존 파일의 맨 끝부터 이어 쓰는 기능 O_TRUNC : 파일을..
-
SSD : 플래시메모리(Flash memory)파일처리 2020. 4. 21. 21:07
오늘은 플래시 메모리에 대해서 알아볼거에요 요즘 하드디스크보다 SSD(Solid State Drive) 를 많이 쓰죠? 이 SSD가 NAND Flash memory 에요 플래시 메모리의 장단점에 대해서 보고 왜 그런지, 동작방식은 어떤지 알아볼게요 컴퓨터 전공자라면 요즘 많이 쓰이는 하드디스크, SSD의 동작방식 정도는 알아두는게 좋아요 장점 1. 빠르다 2. 전력 소비가 적다 3. 내구도가 높다 4. 크기가 작다 5. 무게가 가볍다 6. 소리가 안난다 사실 하드디스크에 비해 단점은 크게 없어요 (몇가지 있긴하지만) 구조 플래시메모리 > 블록 > 페이지 > 섹터 > 스페어 순으로 구성되어 있어요 블록 블록은 소블록 플래시와 대블록 플래시로 나뉘는데 현재 소블록 플래시는 거의 단종됐다고 보시면 돼요 요즘 ..
-
하드디스크 구조2파일처리 2020. 4. 17. 20:23
지난 번에는 하드디스크의 기본적인 장치 구조에 대해 알아봤어요 이번에는 하드디스크의 구체적인 장치와 동작방식에 대해 알아볼거에요 Sector 트랙을 구성하는 최소 단위 = 가장 작은 저장 단위 = addressable unit on disk 하나의 섹터에 하나의 레코드만 저장 = 속도가 향상 하나의 섹터에 여러 데이터를 우겨넣음 = 메모리 save Track 데이터가 저장되는 길. 트랙은 섹터로 구성되며 섹터에 데이터가 저장되고, 그 섹터가 쭉 나열되어 있는 것이 트랙 Cylinder Sector 와 Track 은 물리적으로 실존하는 존재이지만 Cylinder 는 논리적인 단위에요. 트랙 안쪽부터 1번, 2번 ... 번호를 매긴다고 하면 각 Platter 의 n번 Track 의 집합을 Cylinder 라..
-
하드디스크 구조파일처리 2020. 4. 17. 18:53
오늘은 하드디스크(HDD, Hard Disk Drive) 구조에 대해서 알아보려고해요 소프트웨어적으로 중요한 부분만 그려봤어요 Platter 데이터가 저장되는 곳, 즉 디스크를 말해요. 하드디스크는 Platter 에 데이터를 읽고 쓴답니다. 여러 겹이 겹쳐있어서 대용량 파일을 저장할 수 있어요. (여러개라 Platters 가 사실 정확한 표현이에요) Spindle Platter 를 회전시키는 역할을 해요. 하드디스크의 Head 가 Platter의 데이터를 읽거나 쓸 수 있는데 정확히 원하는 데이터가 있는 곳에 Head를 갖다대기 위해서는 Head도 물론 나름대로 움직이지만 Platter 가 원형이라 모든 부분을 Head의 움직임 만으로는 가리킬 수 없어요 그래서 Spindle 이 Platter 를 회전시..