ルギア君の戯言

雑多な記事。

C/C++

リアルタイムタイマー

timer_create() timer_gettime() timer_settime() timer_delete() を使う以外の方法ってないのかね。 SIGALRM を発行するから受け取り処理を作るのが面倒臭くてね。 終了しないように書き換えないと終了しちゃうからねw ↑漁ってたらいろいろ出てきたw

string型

C++ で非常に便利で活躍してくれるものであるが、気になるのを見付けてしまった。 ret = (string)list.top().d_name + ((ret != "") ? ("/" + ret) : ("")); これは一昨日の総ogg変換のソースの一部何だが、 (string)list.top().d_name は string 型にキャス…

printf のフシギ

printf 関数は、 int printf(const char *format, ...); の形をしていますが、 ... の部分は format を読み込んで型を決めるわけですよね。 さて、その ... の部分を読み込む時、普通は void va_start(va_list ap, last); type va_arg(va_list ap, type); vo…

export template<...>

はまだ gcc (g++) ではできないらしい。 メモメモ φ(._.) [lugia@lugia-castle src]$ cat /usr/include/c++/4.3.1/i686-momonga-linux/bits/c++config.h | grep _GLIBCXX_EXPORT_TEMPLATE -B 3 // Allow use of "export template." This is currently not a …

const_iterator

まあ、なんでもいいんだけど、STL には const_iterator っていうのがあるよね。 あの本に使い方が載っていないんだけど、昨日その存在意義が漸くわかったw 例えば、 using namespace std; set<map<string, int> > set1; set<map<string, int> >::iterator ps; map<string, int>::iterator pm; set1.insert(..</string,></map<string,></map<string,>…

C++のエラー

このエラーメッセージを読み解いた人には賞金1円! mharmor.cc:45: error: no match for ‘operator=’ in ‘pp1 = d1->MHArmor_proto::skill.std::map<_Key, _Tp, _Compare, _Alloc>::begin [with _Key = std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, _Tp = int, _Compare = std::less</wchar_t></wchar_t,></_key,>

C++の禁じ手

自分は 新C++言語入門 シニア編〈上〉基本機能 (C++言語実用マスターシリーズ)作者: 林晴比古出版社/メーカー: ソフトバンククリエイティブ発売日: 2001/05メディア: 単行本購入: 1人 クリック: 10回この商品を含むブログ (10件) を見る 新C++言語入門 シニ…

????

昨日と別のプログラムで、今日やってみたら、 wstring wtmp; で、 if(wtmp == L"\"マフモフフード\"") { .... } は問題なくパスした。 何故だー(ぁ wcscmp でできるということは完全一致には間違いないだろうけど・・・ 今回も英字(ダブルクォーテーション)…

wstring は不便?

wstring s_name; に対して if(s_name == L"table") { .... } っていうのは駄目なの? if(wcscmp(s_name.c_str(), L"table") == 0) { .... } では問題なく動作するんだが・・・ 差し支えなかったらご教授願います(ぁ

Binary Difference Generator

MD5とかSHA1とかではどうしても信用できない人の為(?)に2つ("以上"では無い)のバイナリファイルがまったく同じものであるかを調べる為のツールを作った。 [lugia@lugia-castle ~]$ diff --help 使用法: diff [オプション]... FILES 2つのファイルを行ごとに…

gdb の使い方 - その2

今回は大きなプログラムをデバッグしてみましょう。 ここでは rosegarden をデバッグしてみることにします。 デバッグシンボルの生成 gcc に渡すだけなら、-g でよかったのですが、make を使うものは make が gcc などを呼び出すので少々厄介です。 プログラ…

gdb の使い方

gdb とは GNU が提供しているデバッガ。 地味だが、使える。 今回は例として、 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define SIZE 15 #define CHRMAX 80 char banmen[SIZE][SIZE]; void view_board(char* data, int size); void init(char* data, int size); char</ctype.h></stdlib.h></stdio.h>…

補足第2章 魔法の組み立て方

リザード「久しぶりだから、ウォーミングアップを兼ねて、魔法の組み立てかたを勉強しようか。」 ルギア君「ふむふむ。」 リザード「魔法は単発で使うこともあるけど、いろんなものを組み合わせれば、よりいっそう便利になるんだ。」 ディアルガ「まあ、そり…

バブルソート

とある大学のとある学科のある授業(笑)でバブルソートのアルゴリズムを使った課題が出てますが、こんな問題は解けますか。 ここに、日本語で10文字以下の名前をもつ1000人以下の学生がいる。 学生の情報として、名前の他に、10文字以下の読み仮名と、学年、…

第8章 <a class="okeyword" href="g:lugia-kun:keyword:パルちゃん">パルちゃん</a>はどこだ

今回でいっきに配列、ループと条件分岐を紹介します。 ついてこれるかな? ルギア君「そういえば、ディアルガとパルちゃんはどこへ行ったんだろう?」 リザード「さあ、わかりませんね。探しましょうか。」 ルギア君「うん。」 ルギア君が外に行こうとするのを…

第7章 箱の不思議と計算

キノガッサ「何を一生懸命集めているんですか?」 ルギア君「え?」 キノガッサ「, ! (ファギクンジェルバ、セタミッセケボセ!)」 すると、ルギア君がかき集めていた小麦粉は消え、出てなくなったはずの小麦粉の箱から再び、別の場所に小麦粉がば…

第6章 小麦粉をちょうだい

リザード「今回の仕事は、この箱の中に入っているそうだ。」 ルギア君「えっ!? この箱はりんごが入っているんじゃないの?」 リザード「では、開けてみようか。魔法はここにあるよ。」 ルギア君「, −,. (ファギクンジェルバ、フォーディルンジ…

余談

C/C++勉強会で何を書くかのメモを忘れちゃったから2月ぐらいまで書けない・・・ ごめんなさい(駄目すぎ

番外編 GCC をビルドしよう!

結果的に完全な GCC のインストールを紹介することになってしまいましたか。 まあ、成功したんだから、そのことを知らせる意義はあるか。 今回は i686-Linux 用の GCC をビルドします。 クロスコンパイラのコンパイル方法は次で紹介します。 Linuxから目覚め…

第5章 <span class="l">&#57724;&#57676;&#57606;&#57634;&#57603;&#57646;</span> は知らないよ!

ルギア君「, −−! (ファギクンジェルバ、ハローワールド!)」 メタグロス「何だい? その魔法は?」 ルギア君「あれ、じゃあ、何でキノガッサはできたの?」 メタグロス「キノガッサは、あのときはすでに魔法を教えてくれたからだ。」 ルギア君「とい…

第2章 補注

Linux での GCC のコンパイルには glibc が必要らしいです。 今回はこれについては解説しません。 Linux にはすでに入っているのが普通ですので(自分のPC用の glibc はすでに入っている)気付きませんでした。 FreeBSD へのクロスコンパイラをビルドしようと…

第4章 箱の中身とメタグロスの怒り

ルギア君とディアルガは箱をキノガッサのところに持っていった。 キノガッサ「ありがとう。中身を見てみますね。」 そういって、キノガッサは魔法を唱えた。 キノガッサ「, −−, . (ファギクンジェルバ、フォーディーンジェニー、ギクンメケ…

第3章 初めての魔法

リザード「初めての魔法には、うーむ、何がいいかな・・・?」 ・・・ リザード「なるほど。わかった。」 ルギア君「?」 リザード「今、キノガッサから『アップルパイが食べたいから、りんごを取ってきてほしい』って連絡があった。君たちには、この任務を託…

第2章 魔法を使えるようになろう!

キノガッサ「魔法で遊びたいなら、研究室にいるリザードに言うといいよ。」 パルちゃん「ということだ。行こうぜ。」 ルギア君たちは研究室へ行った。 パルちゃん「リザード、ルギア君とディアルガを魔法が使えるようにしてくれ。」 リザード「それならお安…

第1部 C言語編

第1章 城の案内

キノガッサ「おひさしぶり。パルキア*1。」 パルちゃん「おう。今後は『パルちゃん』って呼んでくれ。」 キノガッサ「パルちゃん?」 パルちゃん「そうだ。」 キノガッサ「他の方々は?」 パルちゃん「こっちがルギア君で、こっちはディアルガです。」 ルギア…

序章 魔法の城へ

ここはルギア君が住む、ららるーら村。万年雪に閉ざされている、とても寒い村である。 ある日の朝のこと。 ルギア君「ふわぁ〜! よく寝た。」 ディアルガ「おはよう。ルギア君よ。」 ルギア君「おはよう。」 ディアルガ「なぁ、ここじゃ退屈だから、とても楽…

登場人物達

開発中。(物語中やまとめでも紹介されますのでよく読めばなくてもわかると思うのですが・・・)