c언어 4

[C언어][csapp] Tiny서버 구현 시 SIGPIPE 상황 발생 해결 (문제 11.7과 연결)

https://jinsang-2.tistory.com/87  링크 11.7의 문제의 연장선이라 볼 수 있다.  [CSAPP] 11장 숙제(Homework) 문제 정답11.7) Tiny를 확장해서 MPG 비디오 파일을 처리하도록 하시오. 실제 브라우저를 사용해 여러분의 결과를 체크하시오(MPG 대신 mp4)1.get_filetype에 mp4 추가하기 //MIME type을 읽고 값을 *filetype에 저장void gejinsang-2.tistory.com{IP 주소}.godzilla.jpg로 직접 요청하기잘 나온다!!❗문제발생{IP 주소}.video.mp4 요청 시 SIGPIPE, Broken pipe가 뜨고 영상은 안나온다..접속 시에 서버는 터진다..GDB 디버깅 시도 rio_writen() 부분에서..

[CSAPP] 9-9 동적 메모리 할당(Dynamic Memory Allocation)

나머지 9.9의 자세한 내용은 pdf 파일을 참고해주세용~Intro동적 메모리 할당기는 힙 (heap)이라는 프로세스의 가상메모리 영역을 관리한다.커널은 힙의 꼭대기를 가리키는 변수 brk("break")를 사용할당기는 힙을 다양한 크기의 블록들의 집합으로 관리메모리 구조 잠깐 정리Code 영역(.text) : 실행할 프로그램의 작성한 코드들이 담긴다.Initialized Data 영역 (.data) : 초기화된 전역 변수 및 정적 변수가 저장되는 공간ex) int x = 10;Uninitialized Data 영역 (.bss) : 초기화되지 않은 전역 변수 및 정적 변수가 위치하는 영역ex) int x;Heap 영역 : 동적으로 할당되는 메모리 공간프로그램이 실행되는 동안, 런타임에 필요할 때 메모리를..

[CSAPP]1-5, 1-6 캐시와 저장장치 계층구조

https://jinsang-2.tistory.com/76 [CSAPP]1-2,1-3 컴파일 시스템#inclue int main(){ printf("hello, world\n"); return 0;}hello.c를 시스템에서 실행시키기 위해 저급 기계어 인스트럭션들로 번역되어야 한다!!컴파일 시스템 = 전처리기 + 컴파일러 + 어셈블러 + 링커Pre-processor:jinsang-2.tistory.com앞에서 살펴 봤듯이, 시스템이 정보를 한 곳에서 다른 곳으로 이동시키는 일에 많은 시간을 보낸다. 데이터 복사과정1. 기계어 인스트럭션프로그램의 기계어 인스트럭션들은 하드디스크에 저장되어 있다.프로그램이 로딩되면 디스크의  프로그램이 메인메모리로 복사된다.프로세서가 프로그램을 실행하면 인스트럭션들이 메인..

[CSAPP]1-4 프로세서는 작동 원리

프로세서는 메모리에 저장된 인스트럭션을 읽고 해석한다실행가능한 목적파일로 번역되어 디스크에 저장된 hello 실행파일을 유닉스 시스템에서 실행하는 과정을 알아보자!쉘hello 실행파일을 유닉스 시스템에서 실행하기 위해 쉘이라는 응용프로그램에 그 이름을 입력한다.linux> ./hellohello, worldlinux>쉘은 커맨드라인 인터프리터로 프롬프트를 출력하고 명령어 라인을 입력 받아 그 명령을 실행한다.명령어 라인이 내장 쉘 명령어가 아니면, 쉘은 실행파일의 이름으로 판단하고 그 파일을 로딩해서 실행해준다.→ 쉘은 hello 프로그램을 로딩하고, 실행한 뒤에 종료를 기다린다.hello 프로그램은 메시지를 화면에 출력하고 종료한다.쉘은 프롬프트를 출력해주고 다음 입력 명령어 라인을 기다린다.시스템의 ..