Last Update 2021/03/06
-fmessage-length=n オプション
エラーメッセージを一行n文字程度に収まるように折り返して出力
テスト概要
-fmessage-length=オプションを使用せずにコンパイル
n=0の場合と同様に、行の折り返しが行われずに各エラーメッセージを1行で出力
ターミナル(OSX)への出力例及びファイル出力例
ターミナル(OSX)への出力例及びファイル出力例
-fmessage-length=0 を指定してコンパイル
オプション不使用の場合と同様に、行の折り返しが行われずに各エラーメッセージを1行で出力
ターミナル(OSX)への出力例及びファイル出力例
ターミナル(OSX)への出力例及びファイル出力例
-fmessage-length=60 を指定してコンパイル
ターミナル(OSX)への出力例及びファイル出力例
ターミナル : 42文字
ファイル出力 : 53文字
ターミナル : 42文字
ファイル出力 : 53文字
-fmessage-length=100 を指定してコンパイル
ターミナル(OSX)への出力例及びファイル出力例
ターミナル : 53文字
ファイル出力 : 90文字
ターミナル : 53文字
ファイル出力 : 90文字
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
使用ファイル
main.c
/* -fmessage-length=n オプション動作確認用ソースファイル */
#include <stdio.h>
int main(void)
{
/* 下記コードでエラーメッセージ発生 */
printf(""i);
prinnntf("Error!!!\n")
return 0;
}
-fmessage-length=オプションを使用せずにコンパイル
コンパイル実行
$ gcc main.c
main.c: In function ‘main’:
main.c:8:11: error: expected ‘)’ before ‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit declaration of function ‘prinnntf’; did you mean ‘printf’? [-Wimplicit-function-declaration]
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected ‘;’ before ‘return’
prinnntf("Error!!!\n")
^
;
main.c:11:5:
return 0;
~~~~~~
$ 行の折り返しが行われずに各エラーメッセージを1行で出力
ファイルへの出力
$ gcc main.c 2> sample1.txt
$
sample1.txt
出力内容はターミナルと同一の結果
出力内容はターミナルと同一の結果
main.c: In function ‘main’:
main.c:8:11: error: expected ‘)’ before ‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit declaration of function ‘prinnntf’; did you mean ‘printf’? [-Wimplicit-function-declaration]
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected ‘;’ before ‘return’
prinnntf("Error!!!\n")
^
;
main.c:11:5:
return 0;
~~~~~~
-fmessage-length=0 を指定してコンパイル
コンパイル実行
$ gcc -fmessage-length=0 main.c
main.c: In function ‘main’:
main.c:8:11: error: expected ‘)’ before ‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit declaration of function ‘prinnntf’; did you mean ‘printf’? [-Wimplicit-function-declaration]
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected ‘;’ before ‘return’
prinnntf("Error!!!\n")
^
;
main.c:11:5:
return 0;
~~~~~~
$ 行の折り返しが行われずに各エラーメッセージを1行で出力
ファイルへの出力
$ gcc -fmessage-length=0 main.c 2> sample2.txt
$
sample2.txt
出力内容はターミナルと同一の結果
出力内容はターミナルと同一の結果
main.c: In function ‘main’:
main.c:8:11: error: expected ‘)’ before ‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit declaration of function ‘prinnntf’; did you mean ‘printf’? [-Wimplicit-function-declaration]
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected ‘;’ before ‘return’
prinnntf("Error!!!\n")
^
;
main.c:11:5:
return 0;
~~~~~~
-fmessage-length=60 を指定してコンパイル
コンパイル実行
$ gcc -fmessage-length=60 main.c
main.c: In function ‘main’:
main.c:8:11: error: expected
‘)’ before ‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit
declaration of function ‘prinnntf’; <-- 42文字で折り返し
did you mean ‘printf’? [
-Wimplicit-function-declaration]
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected
‘;’ before ‘return’
prinnntf("Error!!!\n")
^
;
return 0;
~~~~~~
$
ファイルへの出力
$ gcc -fmessage-length=60 main.c 2> sample3.txt
$
sample3.txt
折り返し文字数がターミナルと異なる
折り返し文字数がターミナルと異なる
main.c: In function ‘main’:
main.c:8:11: error: expected ‘)’ before ‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit declaration of function <-- 53文字で折り返し
‘prinnntf’; did you mean ‘printf’? [
-Wimplicit-function-declaration]
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected ‘;’ before ‘return’
prinnntf("Error!!!\n")
^
;
return 0;
~~~~~~
-fmessage-length=100 を指定してコンパイル
コンパイル実行
$ gcc -fmessage-length=100 main.c
main.c: In function ‘main’:
main.c:8:11: error: expected ‘)’ before
‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit declaration of function <-- 53文字で折り返し
‘prinnntf’; did you mean ‘printf’? [
-Wimplicit-function-declaration]
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected ‘;’ before
‘return’
prinnntf("Error!!!\n")
^
;
return 0;
~~~~~~
$
ファイルへの出力
$ gcc -fmessage-length=100 main.c 2> sample4.txt
$
sample4.txt
折り返し文字数がターミナルと異なる
折り返し文字数がターミナルと異なる
main.c: In function ‘main’:
main.c:8:11: error: expected ‘)’ before ‘i’
printf(""i);
^
)
main.c:9:5: warning: implicit declaration of function ‘prinnntf’; did you mean ‘printf’? [
-Wimplicit-function-declaration] 90文字で折り返し
prinnntf("Error!!!\n")
^~~~~~~~
printf
main.c:9:27: error: expected ‘;’ before ‘return’
prinnntf("Error!!!\n")
^
;
return 0;
~~~~~~