개X발 이걸 오늘 처음 알았네
Data Array가 10byte짜리인 char sData이 있다고 정의한다
내용물은 'H','E,'L','L',0x00,'C','O','D','E',0x00 이라고 가정하면
write(FD,sData,10);
와
write(FD,sData,sizeof(char)*10);
에 대해 엄청난 차이가 발생한다
상단에서의 정의는 그냥 무조건 10Btye를 보내게 된다
그런데 하단처럼 sizeof를 기입하게 되면 보내는 Data가 ASC2 형식으로 인식되는 바람에 Hell다음에 있는 중간 NULL값을 잘라 처먹고 보내서 받는 입장에서는 뒤 CODE라는 문자를 못받게 되는 현상이 발생한다
//------------------------------------------------------------------------------------------------------------
사수가 죄다 하드웨어나 기구라 ㅈ나 한탄스럽게 올려본다 모를수도 있으니 너그러히 양해 구하고
정확하게 뭔 상황인지 아는 갤럼 있으면 적극 지적 바랍니다
댓글 0