일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- react
- redis
- Kafka
- 자료구조
- C
- Data Structure
- Proxy
- MySQL
- JavaScript
- 디자인 패턴
- 알고리즘
- IT
- Galera Cluster
- 자바
- 네트워크
- 파이썬
- 운영체제
- mongoDB
- Java
- 백준
- design pattern
- Heap
- spring webflux
- c언어
- OS
- Algorithm
- JPA
- Spring
- MSA
- 컴퓨터구조
- Today
- Total
목록전체 글 (211)
시냅스

파일 디스크립터 (File Descriptor) Unix OS에서 모든 것은 파일로 관리되는데 이러한 파일에 접근할 때 파일 디스크립터 라는 개념을 이용한다. 파일은 일반적인 정규 파일, 디렉토리, 소켓, 파이프, 블록 디바이스, 캐릭터 등등 모든 객체들을 파일이라 칭한다. 0을 포함한 양수인 정수만을 값으로 하고, 0 : 표준 입력 (Standard Input, STDIN_FILENO) 1 : 표준 출력 (Standard Output, STDOUT_FILENO) 2 : 표준 에러 (Standard Error, STDERR_FILENO) 를 기본적으로 할당 받는다. FD는 숫자로, FD 테이블의 인덱스를 의미하기 때문에 FD가 3으로 반환됐을 경우, File Descriptors table에 3번 항목이..

구조체 구조체는 여러 정보들을 한 데 묶어주는 역할을 한다. 기본적인 use case 는 아래와 같다. struct Person { // 구조체 char name[10]; // 구조체 멤버 int age; char address[100]; } /* struct Person { // 구조체 char name[10]; // 구조체 멤버 int age; char address[100]; } p1; 위와 같이 p1을 붙여 줄 경우 바로 p1이라는 변수를 선언한 것 */ struct Person p1; // 구조체 변수 선언 strcpy(p1.name, "김명수"); // 구조체 멤버에 값 할당 p1.age = 1; strcpy(p1.address, "서울특별시 강남구") typedef를 통해 struct 키워드..
restrict 포인터 메모리 접근에 관한 최적화 기능. Alias rule (메모리 상 같은 위치를 다른 변수로 나타낼 수 있는 규칙)에 부합하지 않는 명확한 상황이라고 판단되었을 때 메모리 위치를 확인하는 과정을 생략한다. 즉, restrict 키워드가 쓰여졌다면 각 변수가 같은 메모리 공간이 아니라는 것을 컴파일러에게 알려주는 것. restrict 키워드를 쓰기 이전 void increase(int *a, int *b, int *x) { *a += *x; // x를 역참조하여 가져온 값만큼 *a를 역참조하여 값을 증가시킴 *b += *x; // x를 역참조하여 가져온 값만큼 *b를 역참조하여 값을 증가시킴 } 아래와 같이 어셈블리어로 확인할 수 있다. restrict 키워드는 c99 표준으로 -st..