반응형

C, C++ 19

Stack Size 조절

Stack Size 조절 Linux 시스템에서 프로그램을 개발할 때 local 변수와 global 변수 등을 사용해서 데이터 처리를 한다. 이 때 global 변수는 힙(heap) 영역에 할당되는 반면, local 변수는 스택(stack) 영역에 할당됩니다. Linux에서는 User 당 허용 가능한 stack size가 지정되어 있는데 기본적으로 8192K입니다. 이 정보는 ulimit -a 명령어로 확인 가능하면, 단위(unit)는 Kilo byte 입니다. 간혹 개발 작업을 진행하면서 memory access 시도도 아닌 곳 즉 함수 호출 등에서 segmentation fault를 겪어 보셨을 것입니다. 이 에러가 발생한 이유는 stack이 최대 허용 가능한 size까지 사용됨으로 인해서 함수 정보 ..

C, C++ 2019.04.23

-Wdeprecated-declarations 경고 없애기

gcc -Wall 로 컴파일 할 때 -Wdeprecated-declarations 경고가 발생하는 경우 1. 경고가 생기지 않는 함수를 사용 2. 경고를 표시하지 않도록 함 2-1. 커맨드 라인에서 지정(모든 함수에 적용) -Wno-deprecated-declarations 옵션 추가 2-2. #pragma 사용(이후의 모든 함수에 적용) 소스나 헤더에 다음을 추가 #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 2-3 #pragma 사용2(해당 함수 사용 부분에만 적용) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" warning_func..

C, C++ 2019.01.23

리눅스 폴더 만들기(linux directory )

#include #include #include #include void MakeDirectory(char *pcFullPath);int main() { MakeDirectory( (char*)"/export/home/ering/tmp/MakeDir/00/01/"); return 0; } void MakeDirectory(char *pcFullPath) { char acTempBuf[256], *sp; strcpy(acTempBuf, pcFullPath); // 경로문자열을 복사 sp = acTempBuf; // 포인터를 문자열 처음으로 while((sp = strchr(sp, '/'))) // 디렉토리 구분자를 찾았으면 { if(sp > acTempBuf && *(sp - 1) != ':') // 루트..

C, C++ 2019.01.23

문자열 한글 포함 Hexa 코드로 변경

/*********************************************************************** * function : String2Hexa() * argument : pcSrc - Hexa Code 로 바꾸고자하는 원본 버퍼 pcRes - Hexa Code 로 변경된어 리턴받을 버퍼 **********************************************************************/ int String2Hexa(char *pcSrc, char *pcRes) { int i =0; static char acBuf[512]; char acTmp[32]; memset(acBuf, 0x00, sizeof(acBuf) ); for(i = 0; i < (..

C, C++ 2019.01.23