본문 바로가기

C | C++6

<pthread.h> #include # pthread_attr_t # pthread_create() 호출 프로세스 내에서 새로운 쓰레드를 생성한다. #include intpthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); 파라미터 *thread : pthread_create()호출이 성공하면 반환 전에 새 스레드의 ID를 *thread에 저장한다. *attr : pthread_attr_t 구조체로 스레드 생성 시점에 사용해서 새 스레드의 속성을 결정한다. *start_routine : 새 스레드는 start_routine() 호툴로 실행을 시작한다. *arg : start_routine에.. 2022. 4. 30.
open | close | read | write (저수준 파일입출력 함수) # 저수준 파일입출력 함수 속도가 빠르다. 바이트 단위로 읽고 쓴다. 특수 파일에 접근할 수 있다. 바이트 단위로 입출력하기 때문에 기능을 추가적으로 구현해야한다. # 파일 디스크립터, fd - 시스템으로부터 할당받은 파일이나 소켓을 대표하는 정수 0 표준 입력 1 표준 출력 2 표준 에러 출력 3 여기부터 open 함수로 순차적 할당 ... ... # open 파일을 열거나 생성할 때 사용한다. - 시스템 호출 #include int open(const char *path, int oflag, [mode_t mode]); https://kirkim.github.io/c/2021/02/18/lowfildefunc(1).html - 여기를 보면 errno값이 자동으로 설정되어 perror로 오류코드를 해석.. 2022. 4. 24.
[0423] C 에러 해결 1. 에러명 : argument of type "t_img" is incompatible with parameter of type "void *" -> 구조체에 t_img를 포인터형으로 선언하지 않아서 발생 void free_all(t_game *game) { free(game->img); free(game) }​ 2. 이것도 img의 포인터 선언문제 이것도 img의 포인터 선언문제, 포인터로 선언했으면 . 을 ->으로 바꿔야한다. 해결 3. 메모리 누수 gnl로 한줄씩 읽어올때 이전에 저장하고 있던 라인들을 해제하지 않아서 메모리 누수 발생 intmap_read_in_line_util(t_game *game, int fd, char *line, char *temp) { while (line) { gam.. 2022. 4. 23.
Makefile # make : 소프트웨어 개발을 위해 유닉스 계열 운영체제에서 주로 사용되는 프로그램 빌드 도구 여러 파일들끼리의 의존성과 각 파일에 필요한 명령을 정의하여 최종 프로그램까지 컴파일 할 수 있다. 반복적으로 발생하는 컴파일을 자동화한다. 프로그램의 종속 관계를 빠르게 파악할 수 있다. 유틸리티 이름 -> make 유틸리티는 Makefile 파일의 내용을 읽어 목표 파일을 생성한다. + make의 man 페이지 description The purpose of the make utility is to determine automatically which pieces of a large program need to be recompiled, and issue the commands to recompile t.. 2022. 4. 12.
[ C ] 동적할당 malloc(), free() 2021. 12. 29.
[C++] c++ 이 뭔가요? c++ C언어는 강력한 언어로 오랜시간동안 많은 시스템 소프트웨어, 모바일, 게임, 그래픽, 임베디드 프로그램의 개발에 사용되어 왔다. 하지만 컴퓨터의 속도가 빨라지면서 소프트웨어의 크기도 커지게 되었고, C언어로는 큰 소프트웨어를 개발시에 코드관리에 어려움이 있어 이를 개선하기 위해 C언어에 객체 지향 특성 밑 기능을 추가한 새로운 언어를 개발한다. >> C++ # 객체 지향 프로그래밍 : 클래스와 상속을 이용하여 소프트웨어의 재사용성을 높이고 소프트웨어의 개발과 관리를 쉽게 함. C++ 언어의 목표 1. C언어로 작성된 프로그램과의 호환성(compatability)을 유지한다. 2. 소프트웨어의 재사용을 통해 소프트웨어의 생산성을 높이고, 복잡하고 큰 규모의 소프트웨어 작성, 관리, 유지 보수를 쉽게.. 2021. 10. 20.