nDiki : エラーメッセージ
エラーメッセージ - error message
エラーメッセージの形式について - GNU Coding Standards の場合
GNU coding standards (February 20, 2004.) 4.3 Formatting Error Messages
source-file-name:lineno: message
などの形式とする。
関連情報
- エラー処理
- perldiag
スポンサード リンク
Related term
1999年5月18日 (火)
■ プログラミング言語演習I第4回

今回は、scanf による入力と if 文の学習。
@ 本日の課題
「年齢を入力させ、その値から車の免許が取れるかどうかと酒を飲めるかどうかのメッセージを出力するプログラムを作れ。」
@ 学生から受けた質問等
- muleが起動しない: mule-nw とスペースを開けていないのが原因。
- scanfした後どうすればいいの: 課題の内容を再確認し、処理の流れを考えてもらう。(2件)
- gcc でエラーがでた: gcc のエラーメッセージの見方を説明
- getchar() を使ったが期待した値が入力できない: 似たプログラムがテキストにあって、ここでは getchar() を利用しているのでそれを真似た。ところが、getchar() では文字として入力しているので、入力した数値の最初の文字の文字コードが得られており期待通り動いていない。とりあえずここでは scanf を使うように説明。
- コンパイラエラー: ';' 抜け。(3件)
- どうみてもおかしくないのだが、コンパイラエラー: コメント開始と終了が /* ... */ ではなく \* ... *\ となっている。
- よく意味のわからないコンパイルエラー: 変数宣言の前に printf で出力を行ってしまっている ... 変数宣言は関数(ブロック)の先頭でなければならないことを説明。(2件)
- ソースファイルがない: gcc puro1.c -o puro1.c で上書きしまっている。ご愁傷さま。
- gcc で No such file: kadadi4.c というファイル名で編集しているのに、kadai4.c だと思って gcc していただけ。
- ファイルを保存しなかった: *scratch* バッファに入力。残念ながら mule 終了済み。カットアンドペーストもうまくいかず。ご愁傷さま。彼は本日同じことで2度ソースファイルを失い、これで3度目の入力だとか。
- if (a == '18'): 数はシングルクォートする必要なし。複数文字をシングルクォートすると warning もでる。参照しているテキストが、getchar() で文字を入力し if で文字と比較している例なため、勘違い。
- if ('a' == 18): 変数名をクォートしてしまっている。構文的にはエラーではないが、意図しない結果に。
- gcc のやり方は: もう今日は第4回なのに。忘れちゃったかな。演習の進め方をまとめてある Web ページを説明し、参照してもらう。
- warning: return type of 'main' is not 'int': main の返り値の型について。これも FAQ。すでに演習 Web ページに説明あり。上記メッセージを見て、main 関数の関数名を int にしたがうまくいかないという学生。ちょっとメッセージの読み違えですね。
- parse error before character 033: なぜか目にみえない変なコードがソースファイルにまぎれてしまっている。mule であたりをつけて削除。
- mail の見方: mail コマンドを説明
@ コメント
質問の内容が、操作からコンパイルエラーについてに変わってきた。 やっと、学生も操作になれてきたということか。 まだ、プログラム内容についてはついてきているようだ。 そのうち、どうプログラムを組んでいいかわからなくなってくる学生が増えてくるところか。
変数宣言が関数(ブロック)の先頭になければならない事は授業で説明されただろうか。指定のテキストでは明確にその点について記述されていないため、学生が間違えるのもしかたないか。
「MA1(えむえーわん)」と呼ばれている人がいたが彼は一体?
- [ Perl ] Log::Log4perlのはまりどころ (2004-03-02)
- PAR で DLL ファイルをロードできなかったら大文字小文字を疑え (2009-02-23)
- 全文検索システム Hyper Estraier をアップデート (2009-07-03)
- Evernote 使用開始 (2009-03-03)
- シェイクスピア ヴェニスの商人 (2004-10-09)
2002年2月21日 (木)
■ 14:20 なんで DNS DomainName が domainname なの?

昨日 Solaris 8 に入れようとしたアプリケーション、セットアップで
To ensure the smoothest evaluation experience, we recommend that you have a valid DNS DomainName.
とでてアボートしていた。 なので、テスト用 DNS サーバたててドメイン名をひけるようにした。 が。アボート。
セットアップスクリプトをよくみてみたら、`domainname` の結果が空だとアボートさせている。 ??? domainname って NIS ドメイン名で DNS とは関係ないと思っていたんだけど。 今は違うの? とりあえずエラーメッセージに騙された感じ。
domainname コマンドでドメイン名を指定し、/etc/defaultdomain に同じ名前を書いておく。 で、再度セットアップしてみたらすんなり通ってしまった。 がっくし。 まぁ、djbdns の使い方覚えたからいっか。
- The roof falls in (2004-12-03)
- [ お仕事 ] OCNエコノミー -> OCN ADSLアクセスIP8「フ... (2004-01-16)
- www.naney.org をさくらのレンタルサーバへ移転 (2009-12-23)
- 例によってPHS接続用に WWWOFFLE を設定 (2005-08-02)
- Squid-2.1.RELEASE-src.tar.gz へ更新 (1999-01-20)
2004年2月19日 (木)
■ [ Perl ] PDL::PP で C extension を書く

PDLを使ったPerl数値処理プログラムによりインタラクティブ性が求められるようになってきたので、一部をCで書いて高速化する事を検討。 問題は Linux でも Windows + ActivePerl でもすんなり動くかどうか。
@ .pd ファイルを書く
とりあず PDL::PP のサンプルから sumit 関数あたりを MathEx.pd に書いておく。
@ Makefile.PLを修正する
Foo::Bar パッケージの中の Foo::Bar::Math の一部を Foo::Bar::MathEx に移して、C extension 化したい。 ということで lib/Foo/Bar/MathEx.pd として、Makefile.PL の各種設定をしてみる。
がどうもうまくいかない。 PDL::PP の Makefile.PLサポートは、Makefile.PL と同じ位置に .pd がある事を想定しているようなので、いろいろと小細工をしなければならない。 一方 Perl の XS は Foo::Bar のベース名から Bar.so を作る前提になっているようで、これまたパッケージの中の一部のモジュールをどうもXS化しにくい。
@ 子Makefile.PLを作る
Perl の ext/SDBM_File を真似て、子 Makefile.PL を使ってみることにした。
Foo-Bar-x.xx | +- Makefile.PL | +- lib | | | +- Foo | | | +- Bar.pm | | | +- Bar | | | +- Math.pm | | | +- MathNoEx.pm | | | ... | | +- blib/... | +- MathEx | | | +- Makefile.PL | | | +- MathEx.pd ...
パッケージディレクトリの下に MathEx ディレクトリを作り、そこに Makefile.PL と MathEx.pd を置く。 Makefile.PL は MathEx.pd 専用になるので、PDL::PP の標準的なものでOKになる。
全体のパッケージング・PPM化・インストール等が面倒にならないかと心配したが、Foo-Bar パッケージ化で perl Makefile.PL、make xxx を実行すれば子Makefile.PLまできちんと面倒をみてくれる。 MathEx 以下でビルドしたものもパッケージの blib に一緒に入れてくれるし(=一緒にインストールできる・PPM化できる)。 逆に make dist の際には子Makefileの方は余計なとりまとめはしないで、親Makefileが一括して tar.gz に入れてくれる。 これはよい。 MathEx.pd もきちんと Foo/Bar/MathEx.so になった。
@ XSが使えない環境との両対応
XSが使えない環境のために、PerlとPPの両方で関数を書いておく。 XSが使えれば MathEx を、使えなければ MathNoEx.pm を使うように。 表向きのAPIは Foo::Bar::Math とし、ここで AUTOLOAD を使ってどちらか一方を呼び出すようにする。 間接呼び出しにして遅くなるのはいやなので、シンボルテーブルを直接設定する。
use vars qw($IMPLEMENT_CLASS $AUTOLOAD);
BEGIN {
$IMPLEMENT_CLASS = 'Foo::Bar::MathEx';
eval "use $IMPLEMENT_CLASS";
if ($@) {
warn "Can't load $IMPLEMENT_CLASS: $@";
$IMPLEMENT_CLASS = 'Foo::Bar::MathNoEx';
eval "use $IMPLEMENT_CLASS";
die $@ if $@;
}
}
sub AUTOLOAD {
my $name = $AUTOLOAD;
$name =~ s/.*://;
my $implement = $IMPLEMENT_CLASS . '::' .$name;
no strict "refs";
*{$name} = \&{$implement}; # ここでシンボルテーブル設定
return &{$implement}(@_);
}
最初は、AUTOLOAD の最後の行で die したら、trap してエラーメッセージ中のパッケージ名(Foo::Bar::MathEx や Foo::Bar::MathNoEx)を呼び出された Foo::Bar::Math に置換して die し直すようにしようかと思ったが面倒なのでやめ。
@ ActivePerl 5.6 + Visual C++ 6
使っているWindows BOX には Visual C++ 6 が入っているので、XSも問題なくビルドでき PDL extension もうまく動いた。
PPM化までここで済ませば、他のPCにも持っていけるはず。
@ さて
これでバシバシPPで書けるわけだが、PPがこれまた難解で最初は苦労しそう。
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- ActivePerl で Ming (2005-02-23)
- nmake で毎回 pl2bat されるのを何とかしたい (2004-11-25)
- PAR を ActivePerl 5.6.1 build 638 に (2004-07-20)
- 自前 PPM リポジトリの管理 (2006-07-03)
2005年1月8日 (土)
■ NSIS が再び Linux でコンパイルできるように

2.01 で POSIX プラットフォームで動くようになった NSIS であるが、2.02、2.03 は Linux上ではソースパッケージからのビルドでエラーになってしまっていた。
1月5日に 2.04 がリリースされたので、こちらも試してみる。お、ビルドできた。
tar jxvf nsis204.tar.bz2 cd NSIS/Source make USE_PRECOMPILED_EXEHEADS=1 cd .. su ./install.sh /usr/local/NSIS-2.04
インストール時に Menu ディレクトリが無くてエラーメッセージが出るのは前回と一緒。CVS リポジトリをみるとHTMLで書かれたドキュメントがあるだけのようなので、無くても問題なさそうである。 付属の install.sh も改行コードが CRLF から LF に修正されているためそのまま実行できるようになった。
[ Linux 上で NSIS ]
- Linux 上で Windows 用インストーラを作成する (2004-10-14)
- NSIS 2.22 は Linux でビルドできず (2006-12-20)
- sid の CinePaint がプラグイン読み込みでエラー (2006-04-15)
- ActivePerl で Ming (2005-02-23)
- SCons は GNU Autotools のかわりになるか (2005-04-20)
2005年3月7日 (月)
■ 日本語ファイル名どんとこい

私も大人であるから Word や Excel や PowerPoint のファイルのやりとりがあれば Windows BOX で読み書きしている(参考: Richard Stallman 氏に習う Word 添付ファイルの断り方)。
そしてメールに添付されてくるそれらのファイルは多くの場合、日本語ファイル名だったりする。 Linux 上の Mew 上で適当にASCII文字を使ったファイル名をつけて保存、Samba 経由で Windows BOX で閲覧するというのがいつもの流れだ。 しかし適当に名前をつけているので、すぐどれがどのファイルだがわからなくなる。
Samba で共有しているディレクトリ以下ぐらいは、日本語ファイル名のファイルを作ってもいいことにするかなぁ。
ということで環境設定。
@ LANG
これを機会に一気に UTF-8 化を促進するか。
LANG を ja_JP.eucJP からja_JP.UTF-8 に。 もともと locales では ja_JP.UTF-8 も生成済みだったので特に作業無し。
ターミナルソフトも去年 mlterm に乗り換えているので問題無し。
@ Emacs
(set-default-coding-systems 'utf-8-unix)
default-file-name-coding-system も utf-8-unix になる。
@ Samba
3.0 系。
dos charset = CP932 unix charset = UTF-8 (default)
既に設定済み。
@ ファイラ
さすがに Bash 上で日本語ファイル名を打つのも面倒なので、何かファイルマネージャがあった方がいいな。 できれば Emacs っぽいキーバインディングで。 …… dired でいっか。
@ とりあえず
移行した。 pLaTeX のエラーメッセージとか、UTF-8端末だと読めないものもあるので多少の不便はあるものの大きな問題は今のところなさそうだ。
しばらくやってみる。
- Linux 母艦ノート PC を使わずに仕事ができるかチャレンジ (2007-08-20)
- xyzzyを読み取り専用メディアから起動する (2004-07-28)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- 「シートが硬かった」初めてのつくばエクスプレス乗車 (2006-09-21)
- Evernote 使用開始 (2009-03-03)
2008年1月8日 (火)
■ sarge からetch へのアップグレードで危うくサービス壊すところだった

APT ラインが stable だったため中途半端に etch が混ざっているのが気になっているサーバがある。 セットアップした管理者がしばらく不在にしているので、アップグレードすることにしたが、やはりすんなりとはいかなかった。
@ Python 2.3 から 2.4
Python を使っているパッケージより先にインタープリタが削除されたため、そのパッケージが削除できなくなった。
依存関係無視して一旦削除して、更新。
@ Dovecot は設定がそのまま使えず、ダウングレード
Dovecot はアップデートしたら、設定ファイルの項目が変わったのか、エラーメッセージを吐いてデーモンがあがらなくなった。 MySQL 使ってたり、いろいろ苦労して設定してたものなので、いじるのは危険。 sarge からパッケージ持ってきてダウングレード。
@ Linux kernel もアップデートできず
kernel も 2.4 から 2.6 へアップデートしたが、再起動したら md まわりでエラー。 RAID のところがそのままでは駄目っぽい。 慌てて元に戻す。
一旦 udev にしたのも hotplug に戻した。
@ Apache は a2ensite・a2enmod しなおし
こちらは、バーチャルホストといくつかのモジュールの有効化がリセットされてサイトが見られなくなっていたので、それぞれ有効化しなおして復帰。
- [ Debian ] GRUB でソフトウェアRAID1 ブート設定 (2004-01-05)
- 今日のさえずり - 今日も勢いのあるいい小便でした (2009-09-27)
- Debian Linux kernel 2.6.23 をビルドする。 (2007-12-23)
- Debian Linux kernel 2.6.26 にアップデート (2009-02-07)
- Debian kernel パッケージ構築 (2004-05-09)
2009年2月14日 (土)
■ Windows 上の Unison では日本語のファイル名処理に問題

今まで Windows ではそれほど Unison を使わなかったのと、自分では日本語ファイル名をつけないということで気がつかなかったんだけれど、Unison は Windows 上では日本語ファイル名処理に問題があるらしい。
Unison 2.27.57 で日本語ファイル名のファイルを同期しようとすると `The name of this Unix file is not allowed in Windows' というエラーメッセージが表示されることがある。 チェックは正規表現 "\\.*|aux|con|lpt1|prn|(.*[\000-\031\\/<>:\"|].*)" でしているらしい。 マルチバイト文字だとこれで誤認識されることがあるようだ。
パッチあててもいいけれど、Windows 上で Ocaml ビルド環境入れてとかちょっと面倒。 他のファイル同期ツール探すか、Linux 上で同期するかどちらかだな。
- TrueCrypt で USB メモリに Windows と Linux ... (2006-12-14)
- amaroK で Linux 上の iTunes 音楽データを聞く (2006-01-22)
- Windows でも Linux でも動くタスク管理ツール Task Coach (2006-01-12)
- 日本語ファイル名どんとこい (2005-03-07)
- Debian GNU/Linux で Dropbox (2008-09-16)
2009年9月27日 (日)
■ 今日のさえずり - 今日も勢いのあるいい小便でした

@ 2009年09月25日
- 09:45 意識してなかったけどたしかに。 RT @himanainu_kawai: フォロワーを増やすとどうなるか分かりますか?タイムラインがすべて現在になるんです。 [mb]
- 10:47 実害はないが起動時にエラーメッセージが出るので touch /etc/fetchmailrc しておく。 #Debian
- 11:17 がんすけ2アップデート。
- 11:21 今日からチキンタツタか。
- 12:51 2009年9月22日の歩行: 6408歩、4.84km、64分、4.53km/h、消費 233.7kcal、脂肪燃焼 33.4g、3.1エクササイズ。
- 12:52 2009年9月23日の歩行: 830歩、0.63km、7分、4.98km/h、消費 30.9kcal、脂肪燃焼 4.4g、0.4エクササイズ。
- 12:53 2009年9月24日の歩行: 5240歩、4.07km、44分、5.47km/h、消費 196.5kcal、脂肪燃焼 28.0g、2.8エクササイズ。
- 19:58 RT @yamakiyo: 昨日,帰りの電車でラジカセ型のバッグを持っていた人がいた.よく見たらAMラジオ放送の周波数帯がMHzになってたよ.ダサい. これ → http://bit.ly/JnvoN [mb]
@ 2009年09月26日
- 09:27 いつもと違う車両に乗ったので放尿がよく見える。 L:浜松町駅 [mb]
- 09:32 今日も勢いのあるいい小便でした。 RT @ma0036: @Naney 浜松町の放尿はいい放尿ですよね! [mb]
- 09:35 今日はひと駅前の神田駅で降りて出社してみよう。いま南口。 L:神田駅 [mb]
- 09:52 15分ぐらいで到着。案外はやかった。 RT @Naney: 今日はひと駅前の神田駅で降りて出社してみよう。いま南口。 L:神田駅 [mb]
- 10:04 サスペンドすると必ずフリーズするようになった ThinkPad X31 だが、sid の Linux kernel 2.6.30-2-486 で起動してみたらサスペンドできた。今 2.6.26 なので新しくビルドするか。
- 14:37 さっきの勘違い。sid の Linux kernel 2.6.30-2-486 では今まで通りサスペンドできてなかった。
@ 2009年09月27日
- 12:26 しながわ中央公園の芝生でランチ。ひなた暑っ。 [mb]
- 14:12 スターバックス入店。クレーム ブリュレ マキアート アイス。 [mb]
- 15:42 公園で折り畳みテーブル使っているグループが2組いた。あれ欲しいな。
- 15:55 RT @sugamasao: ついったーに張り付いていても人生は前進しない事に気がついた。
- 21:58 Google Sidewiki のエントリは非公開選択できないのか。できるともっと便利なのになあ。
- 23:06 2009年9月25日の歩行: 5543歩、4.30km、46分、5.51km/h、消費 210.4kcal、脂肪燃焼 30.1g、3.1エクササイズ。
- 23:07 2009年9月26日の歩行: 5695歩、4.37km、49分、5.26km/h、消費 218.3kcal、脂肪燃焼 31.2g、3.2エクササイズ。
- 23:08 2009年9月27日の歩行: 5093歩、3.98km、43分、5.49km/h、消費 180.0kcal、脂肪燃焼 25.7g、2.5エクササイズ。
- 23:46 はてなブックマークFirefox拡張をインストールしてみて、再起動かけたところ。
- Debian Linux kernel 2.6.26 にアップデート (2009-02-07)
- Debian Linux kernel 2.6.23 をビルドする。 (2007-12-23)
- ThinkPad X31 と sid の Linux kernel 事情 (2009-10-04)
- 今日のさえずり - オフィスで最初に WBC の結果を口に出した人がサボリーマン (2009-03-24)
- ThinkPad X31 で fglrx が使えない (2006-08-02)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.032842s / load averages: 0.21, 0.23, 0.25
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。