본문 바로가기
반응형

IT/PROGRAM27

리눅스 C언어 문자열 분리 strtok 사용법 그리고 대체함수 문자열 컨트롤하는 것은 Java C Python C# 등 프로그램 언어 구분없이 반드시 알고 있어야 됩니다. 특히 문자열 자르기는 java나 C#은 split이란 함수를 통해 한줄 코딩으로 잘린 문자열을 얻을 수 있게 심플하게 구현할 수 있는데요. C언어는 strtok 함수가 있기는 하지만 한두줄로 끝나는 게 아닙니다. 사용법을 숙지해야만 원하는 문자열을 얻을 수 있기 때문에 C언어를 하셨던 분이라도 하나하나 의미를 알고 있는게 활용하시기 편하실 거예요. strtok 함수 원형 char * strtok ( char * str, const char * delimiters ): 문자열을 구분자에 의해 나눠진 문자열 조각을 토큰이라고 부릅니다. 긴 문자열을 특정 문자 또는 특정 문자열을 구분자(delimite.. 2020. 10. 16.
valgrind C언어 메모리 누수 찾기 며칠전에 서버 관리자로부터 이메일이 왔습니다. 관리자한테서 연락이 오는건 흔한일이 아닌데요.ㅋ 내가 담당하는 프로세스가 시간이 지날수록 메모리를 계속 누적하고 있다는 거에요. ^^;; 갑자기 왠 청천벽력같은 소린가요 !! 내가 만든건 아니지만 수년간 잘 사용중인 건데요. 먼저 ps -ef 프로세스명으로 PID 값을 확인합니다. top -p PID 명령어로 프로세스가 현재 자치하고 있는 메모리량을 확인했습니다. 헐~~아무리 메모리 사용이 많은 프로그램이라도 메가바이트(MB단)위까지는 이해가 됩니다면 수십 기가바이트(GB)로 표시되어 있어 깜짝 놀랐습니다. C언어로 짠 프로그램이고 해더파일과 소스파일을 합치고 또 링크된 라이브러기까지 합치면 확인해야 될 소스만 10개 이상정도 되는거 같습니다. 이 많은 양을.. 2020. 9. 8.
C언어 프로그램 메모리 누수 찾기 라인수가 몇천줄 안되는 작은 C언어 프로그램일지라도 개발자의 실수로 인해 메모리 누수현상이 생길수 있어요. 규모가 큰 프로젝트는 대부분 모듈(기능)별로 담당자가 있어서 그 모듈 담당자를 믿고 이용하게 될거에요. 뭔가 의심스러워도 자기가 맡고 있는 Job이 먼저다 보니 모듈 사용해보고 결과만 잘 나오면 된다고 생각합니다. ㅋ 저도 그랬던가 같아요. 왜냐면 저도 기간안에 결과물을 제출해야 되는데 괜히 남일 작은거 하나 봐줄려다가 더 커지게 되면 내 업무에 지장을 주니깐요. 프로젝트 끝나고 한두달 작은 메모리 누수가 있어도 요즘 서버 장비들이 워낙 사양이 좋다보니 누수라고 인지하지도 못하고 수개월,수년 메모리 사용량을 체크하지 않게 되요. 나중에 서버 멈춤현상이 생기거나 다운되거나 기타 오작동이 발생해야 수개.. 2020. 8. 21.
반응형