2023. 3. 8. 19:36ㆍ보안 실습/linux
https://www.ibm.com/docs/ko/i/7.3?topic=functions-setvbuf-control-buffering
setvbuf() — 버퍼링 제어
형식 #include int setvbuf(FILE *stream, char *buf, int type, size_t size); 설명 setvbuf() 함수는 지정된 스트림을 위한 버퍼링 전략과 버퍼 크기에 대한 제어를 허용합니다. 통합 파일 시스템 사용 시 setvbuf() 함수
www.ibm.com
포너블을 공부할 때 공격파일 코드에서
setvbuf(stdin,0,2,0);
setvbuf(stdout,0,2,0);
이라는 구문을 많이 찾아 볼 수 있다.
#include <stdio.h>
int setvbuf(FILE *stream, char *buf, int type, size_t size);
stream
stream은 파일 스트림을 넣는 것으로 stdin, stdout을 넣으면 표준 입출력을 관여한다는 것이다.
buf는 buf에서 지정된 배열은 C 라이브러리가 스트림을 위한 버퍼로 사용하기로 선택할 수 있다고 제공한 영역을 지정한단느 의미로 NULL혹은 0을 영역 제공이 없는 것으로 한다.
buf 사이즈 또한 0 이다.
type
_IOFBF(Full buffering mode)전체 버퍼링은 입력과 출력을 위해 사용됩니다. buf를 버퍼로 사용하고 size를 버퍼 크기로 사용합니다.
_IOLBF(Line buffering mode)행 버퍼링이 사용됩니다. 줄 바꾸기 문자가 쓰여지고 버퍼가 가득 차거나 입력이 요청되면 버퍼가 삭제됩니다.
_IONBF(No buffering mode)사용된 버퍼가 없습니다.
의 뜻이며 2번은 _IONBF이다.
여기서 size는 0이기 때문에 즉시즉시 입력이 되도록 한다는 뜻이다.
'보안 실습 > linux' 카테고리의 다른 글
파일 다루기 위해 systemcall로 계산기 만들어보기 (0) | 2023.03.09 |
---|---|
[php]config.php 파일을 만들어 코드 간소화 시키기 (0) | 2023.03.07 |
ubuntu리눅스 환경에서 apache, mysql, php 개발환경 구축 (0) | 2023.03.06 |