AUTOSAR C++14 Rule M27-0-1
The stream input/output library <cstdio> shall not be used.
説明
ルール定義
The stream input/output library <cstdio> shall not be used.
根拠
gets、fgetpos、fopen、ftell など、cstdio の関数には未指定、未定義、および処理系定義の動作があります。
次に例を示します。
関数
gets:において、標準入力で渡された文字数がバッファーchar * gets ( char * buf );
bufを超えているかどうかはチェックしません。入力がバッファーを超えている場合、この関数では予期しない動作が生じる可能性があります。関数
fopenには、エラーに対してerrnoを設定するかどうか、または標準的なモード指定子の後ろに追加文字を受け入れるかどうかに関する実装固有の動作があります。
Polyspace 実装
cstdio ライブラリから関数を使用すると、Polyspace® はこのルールの違反を報告します。Polyspace は、以下の関数 cstdio の使用を検出します。
removeやrenameなどのファイル操作関数。fclose、fflush、fopenなどのファイル アクセス関数。fprintf、fscanf、printf、scanfなどの書式設定付き入力/出力関数。fgetc、fgets、fputc、getcなどの文字入力/出力関数。freadやfwriteなどの直接入力/出力関数。fgetposやfsetposなどのファイル位置付け関数。clearerr、ferror、perrorなどのエラー処理関数。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: Input/output library |
| カテゴリ: Required、Automated |
バージョン履歴
R2019a で導入