반응형 linux c2 Linux c socket 통신 테스트 (recv 할 데이터가 더 클 경우) Linux 에서 C 언어로 socket 통신하는 예제를 작성 해보았다.(OS : Rocky Linux 9.5)여기서 궁금했던 것은 recv 함수를 실행 시에 받을 데이터가 100 byte 이고, 실제로 받은 데이터가 50 byte 라고 하면 어떻게 될 지 궁금했다. 50 byte 를 받고 recv 로 대기를 할 지 아니면 50 byte 만 수행할 지 궁금했다.recv(클라이언트 소켓 fd, 받을 버퍼, 받을 사이즈, 옵션) 이니까받을 사이즈를 100으로 설정하였고,send(서버 소켓, 보낼 버퍼, 보낼 사이즈, 옵션) 에서 보낼 사이즈를 50 으로 설정한 코드이다.#include #include #include #include #include #include #include #include "../com.. 2025. 4. 14. [c compile] directive writing byte into a region of size between warning 컴파일 시 warning 아래와 같은 warning 이 발생하였다. warning: ‘%s’ directive writing up to 255 bytes into a region of size between 192 and 255 [-Wformat-overflow=] 해당 warning은 버퍼오버 플로우를 방지하라는 warning 이다. 이유는 담을 변수의 사이즈가 더 작거나 같거나 할때 나타는 warning 이다. 예시로는 아래와 같은 상황이다. ex) char buf[5]; long a = 10000000; sprintf( buf, "%d", a ) 결국엔 buf의 사이즈보다 더 큰 상황이 올 것이고, 버퍼오버플로우가 날 것이다. 이 부분을 방지하는 것이다. 참고 : https://stackoverfl.. 2023. 7. 31. 이전 1 다음