파일22 C++] 파일 입출력시 최적화 방안 C++ 기준 파일 입출력 시 최적화를 통해 속도 개선하는 방법들을 몇가지 소개한다. 1. 큰 버퍼를 미리 할당해서 메모리 재할당 방지 std::vector, std::string 등은 내부적으로 동적 메모리를 사용하는데, push_back()이나 append()로 데이터를 계속 집어넣다 보면 사이즈가 커질 때마다 메모리 재할당이 발생해서 성능이 저하될 수 있다.이를 방지하기 위해 reserve()로 초기에 충분한 용량을 미리 확보해 두면 이후 데이터 추가 시 메모리 재할당 없이 빠르게 처리할 수 있다.reserve()는 capacity만 늘릴 뿐 size()나 length()에는 영향을 주지 않으며, 선언 시 큰 사이즈로 만든 다음 clear()를 하더라도 capacity는 그대로 유지된다. std:.. 2025. 4. 17. Git ] 코드 변경이 없는 데 전체 파일이 수정된 것으로 표시되는 경우 Git을 통해 여러 개발자간 협업하는 경우 코드 수정사항이 없는데도 불구하고 전체 파일이 수정된 것으로 표시되는 경우가 있다. 이는 보통 운영체제별 개행 문자 차이로 인해 발생한다. 또한 Git에는 이 차이를 자동으로 처리해주는 core.autocrlf 설정이 존재하는 데 오히려 이 설정이 문제를 일으킬 수도 있다. 운영체제별 개행문자 차이Windows : CRLF(Carriage Return + Line Feed, \r\n, 0x0D 0x0A)Linux 및 macOS : LF(Line Feed, \n, 0x0D) core.autocrlf 설정Git에는 파일의 개행 문자를 자동으로 변환하여 저장소 내 일관되게 LF 개행 문자가 저장되도록 처리해주는 core.autocrlf 설정이 존재한다.false.. 2025. 3. 21. TMS320F28388D ] 링커커맨드 파일과 컴파일러 섹션 링커커맨드 파일과 컴파일러 섹션에 대한 이해... Compiler Sections C 코드는 컴파일러를 통해 어셈블리 코드로 변환되고 어셈블리 코드는 어셈블러를 거쳐 오브젝트 파일이 된다. 모든 C 코드는 섹션이라고 불리는 여러 부분으로 분리될 수 있는데 컴파일러는 컴파일 과정에서 C 코드를 분석하여 각 섹션에 들어갈 데이터를 구분한다. 그리고 오브젝트 파일의 구성을 보면 각 섹션별로 데이터가 저장되며 이외에도 변수, 함수 등의 심볼 정보를 가지고 있는 심볼 테이블이 포함된다. 이러한 섹션의 이름에는 .text, .stack, .bss 등 공통적으로 사용되는 것들도 있지만 툴체인마다 섹션의 이름이 약간씩 다르거나 추가적인 섹션이 있을 수 있다. C28x 컴파일러의 섹션은 다음과 같다. Section N.. 2024. 8. 16. bulkfilechanger ] 파일 생성 / 수정 / 액세스 날짜 임의로 수정하기 Freeware인 BulkFileChanger 를 다운로드 한다. https://www.nirsoft.net/utils/bulk_file_changer.html BulkFileChanger: Change date/time/attributes of multiple files BulkFileChanger v1.72 Copyright (c) 2010 - 2021 Nir Sofer See Also NK2Edit - Edit, merge and repair the AutoComplete files (.NK2) of Microsoft Outlook. FolderTimeUpdate - Update the 'Modified Time' of every folder according the latest modified t.. 2024. 1. 11. Windows ] 오래된 파일을 삭제하는 배치 스크립트 오래된 파일을 삭제하는 배치 스크립트를 만들 때 forfiles 명령어를 사용할 수 있다. forfiles 명령어 기본 형식forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [date | days]] /P pathname : 파일이 위치한 폴더 경로 지정, 기본적으로 현재 작업 디렉토리에서 검색을 시작하며 절대경로도 올 수 있다./M searchmask : 파일 이름 패턴 지정 (*.*, Log??.txt, *.tmp 등) /S : 하위 폴더 포함 검색 옵션 /C command : 찾은 파일에 실행할 명령 지정, /C "cmd /c 명령어" 와 같이 작성하면 되며, @file, @path, @fname, @ext 등을 사용해 찾은.. 2024. 1. 2. Visual Studio ] C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 한글버전 Visual Studio를 사용하다보면 아래 경고가 뜰 때가 있다. C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 기본적으로 소스파일, 헤더파일을 만들고 한글 주석을 다는 경우 인코딩이 ANSI로 바뀐다. 파일을 메모장으로 열어보면 알 수 있다. 이게 문제가 되므로 인코딩을 UTF-8로 다시 바꿔주면 된다. 해결방법 1 파일 선택 상단 메뉴의 파일 - 우클릭 - 다른이름으로 ... 파일 저장 - 인코딩하여 저장 선택 ... 파일이 이미 있습니다. 바꾸시겠습니까? 라는 문구가 뜨면 예 선택 인코딩을 UTF-8로 변경하여 저장하면 된다. 참고. 유니코드 - 코드 페이지 1200은 UTF-16을 의미한다. 해결방법 2 이미 만들어진 파일의 경우 위의 방법으로.. 2023. 11. 25. Windows ] 원격 데스크톱 연결 시 파일 전송하기 원격 데스크톱 연결에서 옵션 표시 클릭 로컬 리소스 - 로컬 장치 및 리소소스 - 자세히... 클릭 드라이브 - 연결할 드라이브 체크 이렇게 설정한뒤 원격 데스크톱 연결한다. 원격지 Host PC의 파일 탐색기 - 내 PC에 접근하면 Guest PC의 드라이브에 접근할 수 있다. 이후 파일 복사 붙여넣기를 통해 서로 전송하면 된다. 2023. 11. 17. 파일 디스크립터 파일 디스크립터(File Descriptor, FD)란 Linux 혹은 Unix 계열 운영체제에서 프로세스가 파일 또는 네트워크 소켓과 같은 입출력 리소스에 대해 접근할 때 사용하는 추상적인 식별자이다. 윈도우에선 HANDLE이라고 부른다. 파일 디스크립터는 0이 아닌 정수값을 가지며 C언어에서는 int 형식으로 표현된다. 유효하지 않거나 오류인 경우를 나타내는 음수값과 다른 목적으로 고정된 0부터 2를 제외하고, 프로세스가 파일을 열거나 소켓을 생성할 때 일반적으로 3부터 시작해 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당한다. 이렇게 할당된 파일 디스크립터를 사용하여 프로세스가 열려있는 파일에 시스템 콜을 사용하여 접근할 수 있다. Reference: https://en.wikiped.. 2023. 9. 28. C++ ] .ini 파일 포맷, 설정 파일 입출력 방법 .ini 파일 포맷 .ini 파일은 텍스트 파일로 주로 설정 데이터를 저장하는 데 사용된다. 그리고 각 설정은 섹션과 키-값 쌍으로 구성된다. [섹션] 키=값 [Database] ServerName=MyServer Port=5432 [User] Username=JohnDoe Password=Secret123 아래 소개할 함수들은 Windows API의 일부로 Windows.h를 포함해야 사용할 수 있으며, 설정 파일에서 구성 데이터를 읽어올 때나, 설정파일에 구성 데이터를 쓸 때 사용할 수 있다. GetPrivateProfileInt 섹션과 키를 사용하여 .INI 파일에서 설정 값을 찾으며, 설정 값을 정수(INT) 형태로 반환한다. 만약 해당 섹션이나 키를 찾지 못하면 기본값으로 설정된 nDefault.. 2023. 9. 27. Notepad++ ] 수정된 파일 자동으로 새로고침하기 (파일 모니터링) 보기 - 모니터링 파일의 변화를 모니터링하는 리눅스의 tail -f 명령어와 같은 기능이다. 설정 - 환경설정 - 기타 - 파일 상태 자동 확인 설정으로 가능하다. 2023. 9. 15. 이전 1 2 3 다음