C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[56480] Re:버퍼 길이 구하는 질문입니다~
아제나 [azena] 1313 읽음    2009-03-20 11:44
strlen을 쓰는 것은 매우 위험한 것 같습니다.
보통 시리얼에서 읽어올 때, ReadFile 등의 API를 쓰실텐데 이 때, 읽은 바이트 수를 알 수 있으니...
그것으로 기본으로 확인하시기 바랍니다.
시리얼 통신의 특성상 잡음을 타는 경우가 많습니다. 그러면 엉뚱한 데이터가 들어오는 경우가 생기는데
null terminator가 지정되지 않은 데이터를 strlen에 밀어 넣으면, access violation 에러를 유발하게 됩니다.
따로 버퍼를 두고 for문 등으로 길이를 구하는 함수를 만드셔서 처리하시는게 좋을 듯 합니다.



살랑 님이 쓰신 글 :
: 안녕하세요~
:
: 시리얼로 데이터를 받는데~
: 데이터 길이가 포함된 데이터를 받아서
: BYTE 형 버퍼에 저장하고 있습니다.
:
: 그래서 길이 비교를 위해서 체크를 해야되는데
: StrLen()을 사용해서 길이를 구했더니
: 중간에 NULL 값은 버리더군요;;
:
: NULL 값 까지 포함된 길이를 구하려고 하는데
: 어떤 방법이 있을까여?
:
: 그럼 좋은하루되세요~

+ -

관련 글 리스트
56476 버퍼 길이 구하는 질문입니다~ 살랑 1077 2009/03/19
56480     Re:버퍼 길이 구하는 질문입니다~ 아제나 1313 2009/03/20
56477     Re:버퍼 길이 구하는 질문입니다~ 둘리.CSIEDA 2023 2009/03/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.