인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

slrrpy1234님의 프로필 이미지

작성한 질문수

독하게 시작하는 C 프로그래밍

gets() 함수와 보안 결함 (feat. 시큐어 코딩)

fgets() 함수 사용관련

해결된 질문

작성

·

86

0

리눅스에서는 fgets() 함수를 쓴다고 하는데, 제 컴퓨터랑 강사님 컴퓨터는 Windows 환경인데 어떻게 fget()함수가 동작하나요?

답변 2

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

gcc를 사용하는 Linux 환경에서는 보안성을 높인 gets_s() 함수가 없습니다. 이를 대신해 fgets()를 사용한다고 설명한 것입니다. 이는 fgets() 함수가 윈도우 환경에 존재하지 않는다는 의미는 아닙니다. fgets() 함수는 C언어 표준 함수로 C 컴파일러가 사용될 수 있는 모든 운영체제 환경에서 사용할 수 있습니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

slrrpy1234님, fgets() 함수는 운영체제에 상관없이 ANSI C 표준에 따라 제공되는 C 라이브러리 함수 중 하나입니다. 따라서 Windows, Linux, macOS 등 다양한 운영체제에서 사용할 수 있습니다. 이 함수는 stdio.h 헤더 파일에 정의되어 있으며, 파일 스트림으로부터 문자열을 읽어 들이는 역할을 합니다.

fgets() 함수는 파일로부터 최대 n-1개의 문자를 읽고, 읽은 문자열을 null로 끝나는 문자열로 저장합니다. 파일 스트림, 읽어들일 문자열의 최대 길이, 저장할 버퍼를 인자로 받아 사용됩니다. 이러한 특성 때문에 운영체제는 상관없이 POSIX 표준을 따르는 모든 시스템에서 동일하게 사용할 수 있게 설계되었습니다.

운영체제 차이 없이 fget() 함수를 포함한 많은 C 표준 라이브러리 함수들이 동일한 동작과 인터페이스를 제공합니다. 따라서 Windows 환경에서도 문제없이 사용할 수 있습니다.

아래 링크에서 관련된 질문과 답변을 확인하시면 이해에 도움이 될 것입니다:
- fgets, fputs 관련 질문입니다 - fgets()와 fputs()를 사용하는 방법에 대한 설명이 포함되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.