gets
는
標準 入力
에서 줄을 읽고 呼出에 依해 버퍼로 불러와 貯藏하는
C 標準 라이브러리
의 機能으로
헤더 파일
人
stdio.h
에 宣言되어 있다.
履行
[
編輯
]
그것은 (
getchar
를 使用하여) 다음과 같이 具現할 수 있다:
char
*
gets
(
char
*
s
)
{
char
*
ch
=
s
;
int
k
;
/* 줄 바꿈을 읽기 前 */
while
((
k
=
getchar
())
!=
'\n'
)
{
if
(
k
==
EOF
)
{
/* EOF 줄의 始作이나 다른 EOF 보다 誤謬이면 NULL을 返還 */
if
(
ch
==
s
||
!
feof
(
stdin
))
return
NULL
;
break
;
}
/* 文字는 住所에 貯藏되고, 포인터는 增加 */
*
ch
++
=
k
;
}
/* 줄 바꿈을 棄却하고 Null-終了 文字를 追加 */
*
ch
=
'\0'
;
/* 元來의 포인터를 返還 */
return
s
;
}
安全한 使用
[
編輯
]
프로그래머에 있어서
gets
의 安全한 使用을 하기 위해 버퍼 오버플로우를 確認하는 것이 問題가 되지 않는다.