목록Server/Linux, C (6)
우당탕탕 개발일지

프로세스(Proccess)사전적 의미: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 프로그램을 실행 시키면 정적인 프로그램이 동적으로 변하여 프로그램이 돌아가고 있는 상태이다. 모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해 줘야 실행될 수 있다. 그래서 프로그램을 실행하는 순간 파일은 컴퓨터 메모리에 올라가게 되고, 운영체제로부터 시스템 자원(CPU)을 할당받아 프로그램 코드를 실행시켜 사용할 수 있게 된다.즉, 메모리에 올라와 실행되고 있는 독립적인 개체이자 시스템 자원을 할당받는 작업의 단위이다. 스레드(Thread)사전적 의미 : 프로세스 내에서 실행되는 여러 흐름의 단위 기술이 발전됨에 따라 프로그램이 복잡해지면서 프로세스 작업 하나만을 사용해서 프로그램을 실행하기에는 한계..

MakefileMakefile은 make 명령이 읽는 빌드 규칙 파일이다. makefile을 사용하는 이유는 Incremental build를 사용하기 위해서다.Incremental build는 반복적인 빌드 과정에서 변경된 소스코드에 의존성이 있는 대상들만 추려서 다시 빌드하는 기능이다. ✅ 기본 구조target: dependencies recipe Makefile은 대상(Target), 의존 관계(Dependency), 명령(Recipe) 세 가지로 이루어진다. target: 생성할 파일 이름 (예: 실행파일)dependencies: target을 만들기 위해 필요한 소스 파일들recipe: 실행할 명령어 (※ 반드시 탭 문자로 시작해야 함)✅ 시스템 전용 옵션 (optional)운영체제 또는 시스템..

#으로 시작하는 문장은 전처리기 지시자이다. 전처리기(preprocessor)는 보통 본격적으로 컴파일하기 전에 사전 작업을 하는 컴파일러의 일부분이다. #include는 소스 코드 안에 특정 파일을 포함시키라고 지시하는 명렁어이다. stdio.h와 같은 파일들은 헤더 파일이라고 불리며 컴파일러가 필요로 하는 정보를 가지고 있다. 전처리기 지시자 끝에는 세미콜론(;)을 붙이면 안 된다. 1. #define, #undef ✅ #define#define은 단순 매크로를 정의할 때 사용하는 형태 정의 전처리문이다. 상수를 정의하려고 할 때 가장 많이 사용하는 지시자로 ‘메크로’라고 부른다. 매크로는 두 가지 종류가 있으며, 사용될 때 형태가 다르다.객체형 매크로함수형 매크로 ✅ 객체형 매크로 #define D..

리눅스 파일 종류1. 일반 파일데이터를 저장하는 용도로 사용되며, ls -l 명령어로 확인할 때 -로 시작한다.텍스트 파일, 실행 파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일은 일반 파일에 해당한다.실행 또는 이미지 파일 같은 경우 데이터가 바이너리(이진) 형태로 저장되어 바이너리 파일이라고도 하며, 텍스트 파일을 읽을 때 처럼 vi나 cat 명령어로 사용할 수 있다.리눅스에서는 해당 파일이 텍스트인지 바이너리인지 구분을 하지 않고, 응용프로그램 단에서 파일의 형식을 결정한다. 2. directoryLinux는 Unix 파일 시스템 계층 구조를 기반으로 사용한다.man hier 명령어를 치면 디렉토리 구조에 대한 정보를 확인할 수 있다.ls -l 명령어로 확인할 때 d로 시작한다.디렉토리 파..
1. strcpy(), strncpy() ✅ 반환값strcpy() 함수와 strncpy() 함수는 dest에 대한 포인터를 반환한다. ✅ strcpy 형식#include char *strcpy(char *dest, const char *src);src 문자열을 null('\0')을 포함하여 dest로 복사한다.2번째 문자열 src의 크기가 1번째 문자열 dest 보다 크다면 오버플로우가 발생한다. → 대상 문자열 dest는 복사본을 수신할 만큼 충분히 커야 한다.✅ strncpy 형식#include char *strncpy(char *dest, const char *src, size_t n);strcpy() 함수와 비슷하지만 src 의 최대 n 바이트만 복사되기 때문에 오버플로우를 방지할 수 있다.src..
Linux man 사용법$ man [options] [section] command[SPACE] : 한 페이지 밑으로 내려간다[ENTER] : 한 줄 밑으로 내려간다. [b] : 전 페이지로 올라간다. [q] : man 명령을 종료한다. 1. printf(), sprintf(), snprintf() ✅ printf 형식int printf(const char *format, …) ✅ printf 출력 형식%d %i %u %X %x %o %p %s %c %C %f %e %E %g %G 출력 형식인수의 형을 지정%dint값을 10진수로 출력%c문자열 하나 출력%p포인터값을 16진수로 출력%xint값을 부호없는 16진수로 출력, 10~15은 'a'~'f'로 표시%uint 값을 부호없는 10진수로 출력%..