17분 2초에
115
작성한 질문수 5
17분 2초 쯤
printf("%s\n", inbuf);
의 출력 결과가 hello, world #1 이고
나머지 데이터가 안 찍힌 이유로
개행이 없다고 설명해 주셨는데
이 부분이 조금 애매한 것 같습니다.
inbuf 에는 아래와 같이
hello, world #1\0hello, world #2\0hello, world #3
입력한 데이터가 다 들어있고 널문자까지 있습니다.
그걸 printf("%s\n" ...) 출력하다 보니
버퍼 중간의 null 을 만나서 문자열 끝으로 인식해서 출력이 종료된고
write 함수로 MSGSIZE 대신 null 문자를 제외한 사이즈 MSGSIZE - 1 로 출력하면
printf 가 msg1, msg2, mg3을 다 찍네요
null 이 없어서 이상한 문자가 출력되지만요...
답변 1
0
안녕하세요.
말씀하신 대로 설명이 애매 한게 있네요.
hello, world #1만 출력되는 이유는 \n가 없어서가 아니라 msg1, msg2, msg3 까지는 버퍼에 읽었지만 printf가 hello, world#1\0 까자만 첫번째 문장으로 해석해서 출력했기 때문이 맞습니다.
printf("%s\n", inbuf) 문에서 \n가 없었으면 전체가 안찍혀야 맞는데 \n가 있어서 첫번째 문장만 한문장으로 인식하여 출력된 것입니다.
좋은 지적 감사합니다.
덤프 파일 제공
0
45
1
라즈베리파이 어떤 모델 사시는걸 추천하나요?
0
61
1
실습을 위한 운영체제
0
58
2
에이전트 프로그램 다운로드 불가
0
73
2
Segger 사의 SystemView를 이용하여 디버깅해 보고 싶어요
0
40
1
강의 내용 관련 문의드립니다.
0
51
2
ISR에서 xEventGroupSetBitsFromISR() 함수를 사용하려고 합니다.
0
47
1
logicsniffers에서 문맥전환 할때 prvExampleTaskHook() 함수 호출 관련
0
39
2
섹션 2 DNS 강의자료가 34페이지가 마지막일까요?
1
79
2
추가질문)
0
75
1
tgz 백업파일
0
79
2
APM 보안 셋팅
1
72
1
"도커 이미지 생성" 18:59부분에 텍스트 파일로 정리 된거는 어디서 볼수 있나요?
0
104
1
ls -al /var/log/nginx
0
94
2
이번강의
0
85
2
버추얼박스 오류
0
97
1
세월이 흘러 문제가 바뀐 것 같습니다.
0
86
2
수업자료는 없나요?
0
46
1
디자인패턴 질문
0
73
2
CFLAGS에 -c 옵션 넣는게 맞는지 궁금합니다.
0
104
1
함수 메뉴얼을 보기 위한 단축키
0
138
1
혹시 고급과정의 경우 하반기 몆월쯤 나올까요?
0
161
2
혹시 고급과정도 출시가 되는지요?
0
217
1
네트워크 환경설정 오류
0
475
1





