본문 바로가기

전체 글224

read 함수 read 함수원형#include ssize_t read(int fd, void *buf, size_t count);인자fd : 읽을 파일의 파일 디스크립터 buf : 읽어 드릴 데이터를 저장할 버퍼count : 읽어 들일 데이터의 최대 길이(buf)의 길이보다 길어서는 안됨)리턴값 : 실제로 읽은 데이터의 byte 수 일반적으로 count와 같은 값을 리턴 하지만 endof에 도달하거나, socket통신에서 수신할 데이터가 아직 도달하지 않았을때, socket이 close했을때0 : 더 이상 읽을 파일이 없을 경우-1 : 오류가 발생했을 경우. 상세한 에러내용은 errno에 기록된다.errno종류 EAGAIN : file을 open할 때에 O_NONBLOCK flag이 설정되었으며, 현재 읽을 데이터가 .. 2022. 12. 22.
파일디스크립터에 대하여(간단한 설명) 안녕하세요 조신입니다 오늘은 파일 디스크립터에 대해 이야기해보고 다음으로는 42서울 과제에서 get_next_line의 openmax값을 이용해 디펜스 하는 방법을 알려드리고자 합니다. 파일 디스크립터란 무엇인가 간단히 말해서 파일을 표현하는 번호입니다. 조금 더 자세히 말하자면 파일의 위치를 가리키는 곳을 가리키는 번호라고 생각하시면 되겠습니다. 파일 디스크립터 생성 open, creat, socket, accept 등의 함수로 open하면 fd라는 숫자값이 생깁니다. 이 값은 각 프로세스마다 독립적이며 프로세스마다 다른 파일 디스크립터 태이블을 가지고 있습니다. 배경 리눅스와 유닉스에서는 시스템을 전부 파일로 처리하여 관리합니다. (하드웨어 등 모든 장치도 포함합니다.) 사용 이유 시스템에서 프로세서.. 2022. 12. 19.
컴파일에 대하여(간략설명) 안녕하세요 조신입니다. 7기 1차인 신입 카댓이라 많이 부족하겠지만 공부했던 것들을 공유하는 글로 정리한 글을 공유해보고자 합니다. 컴파일이란? 일단 많은 분들이 컴파일이란 무엇인가 궁금해 하십니다. 컴파일을 한마디로 말해서 소스코드를 컴퓨터가 이해할 수 있는 어셈블리어로 변환하는 과정입니다. 많은 분들이 그냥 gcc를 사용하시지만 실제로 저희가 사용하는 gcc는 컴파일만 해주는 것이 아니라 전처리, 컴파일, 어셈블리, 링킹까지 한번에 해서 실행파일을 만들어주는 엄청난 드라이버입니다. (c++에서는 g++입니다.) 전처리과정이 뭘까요? #include 로 선언된 헤더파일이나 #define 으로 정의된 매크로 등을 실제 코드로 바뀌게 됩니다. 이때 전처리과정은 텍스트들이 치환만 됩니다!(연산은 일어나지 않.. 2022. 12. 19.
UML다이어그램 시작하며 UML의 이해 UML의 구성요소 UML 모델링의 이해(★★★) 다이어그램의 종류 정적 모델링 도구(★★★★★) 동적 모델링 도구(★★★) UML 모델링 절차 UML 클래스 관계 시작하며 안녕하세요 42서울 카뎃 7기 조신입니다. 오늘은 코드를 짜기 전에 많은 개발자들이 사용하는 다이어그램 그리곤 하는데요. 그에 대한 표준에 대한 이해를 위한 글을 작성해보고자 합니다. UML의 이해 모델이란 현실을 단순화(기사화)를 통해서 개발할 시스템에 대한 계획이나 구상에 대한 내용을 나타낸 것이다. 모델링 방법론 모델링을 하는 방법은 크게 3가지로 나뉘는데 OMT : 시스템이 요구하는 객체를 완벽하게 기술하는 방법으로 객체 모델링 동적 모델링 기능 모델링의 종류가 있다. 객체 모델링 : 시스템에서 필요한 객.. 2022. 12. 19.
COM 기술 목차 목차 시작하며 COM 참고문서 COM의 특징. COM이란 무엇인가? 이진 표준 COM의 요구사항 COM의 특징을 요약하면 다음과 같습니다. COM의 구성요소 분류 COM 컴포넌트 COM 인터페이스 인터페이스 식별자. 인터페이스 정의 (IDL) 인터페이스 빌드 및 파생 특징 인터페이스 제작 단계 및 사용방법 상속 인터페이스의 작동 및 설명 인터페이스 구현 인터페이스 정의와 구현 인터페이스 식별(DLL) COM의 의의 COM의 특징 구성요소 인터페이스 제공 시작하며 안녕하세요 조신입니다. 오늘은 window 프로그래밍을 배우면서 사용하는 COM기술에 대해서 공부해 본 것들을 공유하고자 이 글을 작성합니다. 많은 부분이 ms공식 문서를 참조하였고 이 글을 작성하면서 추상적으로 배웠던 COM에 대해서 더 .. 2022. 12. 19.
기억장치와 캐시메모리 기억장치 cpu 저장장치 레지스터가 있고, cpu명령이나 자료를 일시적으로 저장하는 캐시가 있다.컴퓨터가 동작할 때 처리 하는 프로그램들의 명령어나 자료를 저장하는 주기억장치가 있고, 개인의 자료와 처리 결과를 보관하는 보조기억 장치가 있다.주 기억장치(RAM, ROM)컴퓨터 내부에서 현재 cpu가 처리하고 있는 내용을 저장하고 있는 기억장치이다.비교적 용량이 크고 처리속도가 빠르다.cpu의 명령에 의해 기억된 장소에 직접 접근하여 읽고 쓸수가 있음대표적으로 RAM 과 ROM으로 나뉜다. ROM(Read Only Memory)전원이 끊어져도 기록된 데이터가 소멸되지 않는 비휘발성 메모리이다.오직 기억된 데이터를 읽기만 가능한 장치이다.데이터를 저장한 후 반영구적으로 사용할 수 있다. 그래서 시스템에 기억.. 2022. 12. 19.
kdump란 무엇인가 KDump란 무엇인가? 본투비루트를 하면서 kdump라는게 있어서 알아보다가 정리한 글을 공유합니다. Kdump는 Kernel 이 crash 발생했을 때, crash dump 정보를 캡처하는 데 사용하는 kernel의 기능이다. 커널 패닉 이벤트 시에 충돌 덤프를 생성하는 리눅스 커널의 한 부분이다. kdump는 kexec를 바탕으로 한 ‘커널 크래쉬 덤핑 메카니즘’이다. 이는 커널 패닉이 발생했을 때 시스템의 메모리 상태를 vmcore(메모리이미지)라는 파일 형태로 생성하는 작업이다. 이는 디버깅 목적으로 분석 될 수 있고 충돌의 원인을 결정할 수 있는 메모리 이미지인 Vmcore를 생성하는것이다. Kernel이 실행 중에 crash가 발생하게 되면 'kexec'가 실행되고 예약된 메모리에서 kdump.. 2022. 12. 19.
윈도우(window, ms)의 역사 window의 역사 1. MS-DOS x86 Real mode에서 실행되는 명령줄 기반의 운영체제이다.(OS) 86 DOs 1.1을 구매해서 MS DOS1.1를 출시했다. 현재 CMD와 거의 모든 명령이 그대로 유지되고 있다. CPM쓸 때 명령어가 아직도 사용되고 있다. 2. Windows 1.0, 1985 매킨토시를 대항하기 위해서 나온 프로그램이다. IBM pc들은 무료로 사용하고 있어서 사실 가격차가 매우커서 매킨토시와 큰 괴리가 있었다. 그 때 당시 GUI는 초기 상태였다. MS-DOS 2.0 이상에서 실행되는 16bit shell프로그램이다.(os위에서 하는것) Windows 2.0 본격적으로 매킨토시와 경쟁하고 싶었음. 80286, 512 KB이상을 요구하며 MS-DOS 3.0이상에서 실행되는.. 2022. 12. 19.