Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Getsとは? わかりやすく解説

gets

別表記:ゲッツ

「gets」の意味・「gets」とは

「gets」は英語の動詞で、主に「得る」「取る」「理解する」などの意味を持つ単語である。主語によって形が変わる動詞であり、主に三人称単数形(he, she, itなど)の現在形として用いられる例えば、「He gets a book.」は「彼は本を手に入れる」という意味になる。

「gets」の発音・読み方

「gets」の発音は、IPA表記では/gɛts/となる。IPAカタカナ読みでは「ゲツ」となる。日本人発音するカタカナ英語では「ゲッツ」と読む。この単語発音によって意味や品詞が変わる単語はないため、一つ読み方のみを覚えればよい。

「gets」の定義を英語で解説

「gets」は英語で「to receive or obtain something」と定義される。これは「何かを受け取る、または得る」という意味である。また、to understand something」という意味もあり、「何かを理解する」という意味も含む。

「gets」の類語

「gets」の類語としては、「receives」「obtains」「understands」などが挙げられる。これらはすべて「gets」が持つ「受け取る」「得る」「理解する」という意味をそれぞれ表す単語である。

「gets」に関連する用語・表現

「gets」に関連する表現としては、「get along」「get together「get over」などがある。これらはフレーズ動詞呼ばれ単独の「getの意味とは異な特定の意味を持つ。

「gets」の例文

1. He gets a new job.(彼は新し仕事を得る)
2. She gets the idea quickly.(彼女はすぐにその考え理解する
3. The dog gets a bone.(は骨を手に入れる)
4. The company gets a lot of complaints.(その会社多く苦情受け取る)
5. He gets the highest score in the class.(彼はクラスで最高のスコアを得る)
6. She gets a letter from her friend.(彼女は友人から手紙受け取る)
7. The student gets the teacher's explanation.(その生徒先生説明理解する
8. The team gets a new coach.(そのチーム新しコーチを得る)
9. The child gets a toy from his parents.(その子供は両親からおもちゃをもらう)
10. The researcher gets the data from the experiment.(その研究者実験からデータを得る)

gets

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2015/01/16 01:55 UTC 版)

gets は、C言語における標準入力から1行分の文字列を取り出す関数である。この関数はバッファオーバーランを防ぐことが不可能という致命的な脆弱性を持っており、2011年の改定のC11標準CライブラリC++14標準C++ライブラリより廃止された[1]

形式

C11の1つ前の版の標準規格であるC99までにおいて、<stdio.h> で gets は以下のような形式で宣言されていることが規定されていた。

char *gets(char *s);

gets は標準入力から改行 ('\n') が現れるまでデータを読み込み、引数で渡された s に格納する、このとき改行文字は終端記号 ('\0') に置き換える。戻り値にはエラーが発生した場合は NULL を、それ以外は s を返す。

scanf の %d や %s と異なり、改行文字は読み込んだ後で終端記号に書き換えるためストリームに改行文字は残らない。このため scanf のような改行文字の処理は必要とはしない。逆に scanf で呼ばれた直後に gets を呼ぶと、入力ストリームの先頭に改行文字が残っているため gets は空の文字列を返してしまう。このため scanf と混在して使うべきではないとされている[2]

セキュリティ

以下のようなコードがあった場合を考えてみる。

char a[10];
gets(a);

このとき、入力されたデータが a の長さから終端記号を除いた9バイトより大きいものであるなら、このコードではバッファオーバーランが発生する。入力されるデータの長さの予測は不可能なので、他の関数(scanf や fgets など)では格納先に入力できる最大長を指定することでバッファオーバーランを回避する方法がとられる。しかし、上記の宣言を見てもわかるように、gets には入力される文字列の長さを制限する機能が存在しない。

以上、gets を用いるとバッファオーバーランを防ぐ手段はないため gets は実用的なプログラミングでは絶対に使用してはならない関数とされており、実際に2011年に行われた改定(ISO/IEC 9899:2011、通称C11)で廃止された。POSIX.1-2008では廃止予定の分類である。例えばGCCでは、getsを使用するプログラムをコンパイルすると「the `gets' function is dangerous and should not be used. ('gets' 関数は危険なため使うべきではありません。)」と警告される。

代替策

gets の使用を停止し、以下の関数に置き換えることが考えられる。

fgets 関数
gets と末尾の改行文字の扱いが異なるため単純に gets を fgets で置き換えることは出来ない。具体的な置き換え方法は fgets の項が詳しい。
gets_s 関数
C11で追加されたが、C11において実装が必須ではないため必ずしも利用可能とは限らない。
getline 関数
POSIX 2008で追加された。stdio.h のヘッダに含まれるが使用には _GNU_SOURCE を define する必要がある。libc 4.6.27以降で使用可能。

関連項目

脚注

[ヘルプ]
  1. ^ N1570 Committee Draft ISO/IEC 9899:201x Programming languages C (PDF)” (英語). p. xiii. 2012年3月30日閲覧。 “removed the gets function (<stdio.h>)”
  2. ^ http://www.kouno.jp/home/c_faq/c12.html#18

外部リンク


GETS (2006年 - )

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/13 19:37 UTC 版)

ビッグ・アスホールズ」の記事における「GETS (2006年 - )」の解説

ぶっちゃあ主宰サンミュージック企画芸人中心

※この「GETS (2006年 - )」の解説は、「ビッグ・アスホールズ」の解説の一部です。
「GETS (2006年 - )」を含む「ビッグ・アスホールズ」の記事については、「ビッグ・アスホールズ」の概要を参照ください。

ウィキペディア小見出し辞書の「Gets」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Gets」の関連用語

Getsのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Getsのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
実用日本語表現辞典実用日本語表現辞典
Copyright © 2025実用日本語表現辞典 All Rights Reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのgets (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのビッグ・アスホールズ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS