파일 디스크립터란?
·
개발 일지/기타
파일 디스크립터 완벽 분석: 하나부터 열까지1. 핵심 개념:파일 접근을 위한 핸들: 파일 디스크립터(File Descriptor, 줄여서 fd)는 운영체제에서 프로세스가 파일에 접근하기 위해 사용하는 정수 값입니다. 파일을 열거나 생성할 때 운영체제는 해당 파일에 대한 정보를 관리하고, 프로세스에게 파일 디스크립터를 할당합니다. 이후 프로세스는 파일 디스크립터를 통해 파일 읽기, 쓰기, 닫기 등의 작업을 수행할 수 있습니다.모든 것은 파일: 유닉스/리눅스 시스템에서는 모든 것을 파일로 취급합니다. 일반 파일, 디렉토리, 장치(키보드, 마우스, 모니터 등), 소켓, 파이프 등 모든 입출력 자원은 파일 디스크립터를 통해 관리됩니다.2. 파일 디스크립터 테이블:프로세스별 관리: 각 프로세스는 자신만의 파일 디..
fflush(함수)란?
·
개발 일지/기타
fflush 함수: 완벽 가이드핵심 기능:버퍼 비우기: fflush 함수는 출력 스트림(파일, 콘솔 등)에 연결된 버퍼의 내용을 강제로 비웁니다. 버퍼는 데이터를 임시 저장하는 메모리 공간으로, 성능 향상을 위해 사용됩니다. 하지만 버퍼에 데이터가 남아있는 상태에서 프로그램이 예기치 않게 종료되거나 오류가 발생하면 데이터 손실이 발생할 수 있습니다. fflush는 이러한 문제를 방지합니다.함수 원형:#include int fflush(FILE *stream); stream: 비우고자 하는 스트림의 FILE 포인터를 전달합니다.반환 값: 성공 시 0을 반환하고, 오류 발생 시 EOF를 반환합니다.동작 원리:버퍼링 메커니즘: 운영체제는 입출력 작업의 효율성을 높이기 위해 버퍼를 사용합니다. 데이터를 한 번에..
버퍼란?
·
개발 일지/기타
버퍼란 무엇인가요?**버퍼(Buffer)**는 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 데이터를 저장하는 메모리 공간입니다. 마치 택배 상자와 같은 역할을 한다고 생각하면 이해하기 쉽습니다. 왜 버퍼를 사용하나요?속도 차이 해소: 데이터를 주고받는 장치나 프로그램들의 처리 속도가 다를 수 있습니다. 버퍼는 이러한 속도 차이를 완충하여 데이터 전송이 원활하게 이루어지도록 돕습니다. 예를 들어, 느린 하드 디스크에서 빠른 CPU로 데이터를 읽어올 때, 버퍼에 데이터를 미리 저장해두면 CPU는 기다리지 않고 빠르게 데이터를 처리할 수 있습니다.데이터 손실 방지: 네트워크 통신과 같이 데이터 전송 중 예기치 못한 문제가 발생할 수 있는 환경에서 버퍼는 데이터 손실을 방지하는 역할을 합니다. 데이..
포인터란?
·
개발 일지/C언어
C 언어 포인터 완전 정복: 초보자를 위한 친절한 안내서 1. 포인터란 무엇일까요? 컴퓨터는 데이터를 메모리라는 공간에 저장합니다. 각 데이터는 메모리 상의 특정 위치(주소)에 저장되는데, 이 주소를 저장하는 특별한 변수가 바로 포인터입니다.즉, 포인터는 데이터가 있는 곳을 가리키는 표지판과 같습니다.2. 왜 포인터를 사용할까요? 효율적인 메모리 관리: 큰 데이터를 직접 복사하는 대신, 포인터를 이용해 데이터의 위치만 전달하면 메모리 사용량을 줄일 수 있습니다.함수 간 데이터 공유: 함수에 포인터를 전달하면, 함수 내부에서 원본 데이터를 직접 변경할 수 있습니다.동적 메모리 할당: 프로그램 실행 중에 필요한 만큼 메모리를 할당하고 해제할 수 있어, 메모리 사용을 유연하게 조절할 수 있습니다.데이터 구조 ..
구조체란?
·
개발 일지/C언어
구조체 구조체(struct)는 C 언어에서 여러 개의 변수를 묶어서 하나의 새로운 데이터 타입을 만드는 방법. 마치 레고 블록처럼 서로 다른 모양과 색깔의 블록들을 조립하여 새로운 형태를 만드는 것과 비슷하다. 각 블록은 다른 종류의 데이터(숫자, 문자, 다른 구조체 등)를 나타낼 수 있습니다. 왜 구조체를 써야 할까?  데이터 정리 관련 데이터 묶기: 예를 들어, 학생 정보를 관리한다고 생각해 보자. 이름, 나이, 학번, 주소 등 여러 정보가 필요하다는걸 알 수 있다, 이 정보들을 각각 따로따로 변수로 관리하면 코드가 복잡해지고 실수하기 쉽다. 구조체를 사용하면 이 정보들을 하나로 묶어서 "학생"이라는 새로운 데이터 타입을 만들 수 있다. 마치 서랍장에 물건들을 종류별로 정리하는 것처럼, 관련 데이터를..
strcpy 함수
·
개발 일지/C언어
strcpy 함수 strcpy 함수는 C 언어에서 문자열을 복사하는 데 사용되는 표준 라이브러리 함수입니다. 이 함수는 원본 문자열의 내용을 대상 배열로 복사합니다. strcpy 함수는 다음과 같은 형태로 사용됩니다:char *strcpy(char *dest, const char *src);dest: 복사된 문자열을 저장할 대상 배열입니다.src: 복사할 원본 문자열입니다.strcpy 함수는 src 문자열을 dest 배열에 복사한 후 dest 배열의 시작 주소를 반환합니다. 복사 과정에서는 널 종료 문자(\0)까지 복사되며, dest 배열의 크기가 충분히 크지 않으면 버퍼 오버플로우가 발생할 수 있습니다. 따라서, 사용 시 주의가 필요합니다.예를 들어, 아래 코드는 strcpy를 사용하여 문자열을 복사하..