fputs에서 fwrite 로 변경 후 버퍼타입이 헷갈리는데요
158
5 câu hỏi đã được viết
동영상에서 34분 전후를 보면
fputs는 line 버퍼 사용하고 있고
fwrite 로 변경후 fully 버퍼를 사용한다고 나오는데
fwrite 를 써도 출력 대상이 stdout 이니까
버퍼 종류는 똑같이 line 버퍼가 아닌가요?
Câu trả lời 1
0
안녕하세요.
fputs는 문자열에 '\n'가 나오면 버퍼가 비위지는 fflush가 되기 때문에 출력 되고 fwrite는 라이브러리 버퍼가 꽉 채워지지 않으면 출력이 안되므로 fully 버퍼 방식을 사용 합니다. 똑같이 stdout 으로 출력 되더라도 버퍼링을 안 할 수도 있고 , line buffered, fully buffered 로 작동되도록 library 안에 구현 되어 있습니다.
0
답변 주신거 참조해서 정리해봤습니다.
fputs 이나 fwrite 모두 출력 대상에 따라 버퍼 종류가 결정된다.
stdout 에 fputs 으로 출력 시 라인버퍼 즉 개행을 만나거나 버퍼가 꽉 차면 flush 하지만
fgets 읽었기때문에 개행까지만 읽어서 개행 수만큼 루프가 돌고 sleep 이 실행됐다.stdout 에 fwrite 으로 출력 시 역시 라인버퍼이며 개행을 만나거나 버퍼가 꽉 차면 flush 하지만
fread 로 읽었기 때문에 개행이 여러개 포함되었고 결과적으로 한번의 호출에
읽은 개행 수 만큼 flush 하여 fgets 보다 루프를 덜 실행하고 sleep 도 덜 실행되서
fputs 보다 상대적으로 빠르게 동작했다.
26년2회 실기기출은 언제쯤...
0
20
2
이론 공부법 요약본 버전 업데이트 문의
0
17
2
진도율 관련
0
13
1
P6KE47CA 이 부품에 대해서 궁금합니다.
0
25
1
교육용 보드 쓰로틀 질문입니다.
0
35
3
14강 PCB 배선 및 검사 파트 질문
0
27
1
PCB보드 주문 비용
0
34
1
8강 회로도 설명 2 강의 부분 질문
0
33
1
nestjs 강의는 없나요??
1
38
2
모스펫 기생 커패시터에 대한 내용 누락
0
34
1
강의 자료 어디 있을까요?
0
37
2
수동으로 계산하기 부분에서 질문
0
32
1
STM32 보드 연결 방법 없이 바로 코딩으로 넘어가서 당황스러운데
0
41
3
모터와 모터 드리이브 쪽 영상이 이상해요
0
38
2
ALU 강의에서 질문
0
37
2
납땜 질문
1
49
1
Chapter 16 FSM 관련 질문
1
42
2
강의 시작전 준비물 리스트 질문
0
60
2
디버깅이 잘연결되다가 연결이 끊어졌어요
0
45
2
디버깅 오류
0
57
2
1강에도 영상강의가 있나요?
1
33
1
강의 환경(linux) 관련 질문
1
49
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
54
2
주소에서 &기호 질문
0
61
1

