2009年12月22日火曜日

GDBについて

なぜ、GDBから直接Unixのグローバル変数errnoを参照できない?
原因、errnoは下記のマクロである。
#define errno (*__errno_location())
C言語の特徴によりマクロの値は参照できないだ。対応策、
print (*__errno_location())
直接本来の定義を参照することで解決!!!!

2009年12月12日土曜日

linbinbin shared a new Qik video

Hi there - check this Qik video out

3f4936ee74214e1c9a9e77d8953a71b4



- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Connect with us on Facebook and Twitter.

2009年12月11日金曜日

linbinbin shared a new Qik video

Hi there - check this Qik video out

2985e4ce4d1349e7bcb5fbbd6630fa6a



- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Connect with us on Facebook and Twitter.

2009年11月23日月曜日

linbinbin shared a new Qik video

Hi there - check this Qik video out

F2bff51acd4e48c683599c8d5ae0f4c5



- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Connect with us on Facebook and Twitter.

linbinbin shared a new Qik video

Hi there - check this Qik video out

C8994a099ce44b07ad075391c9cf82cc



- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Connect with us on Facebook and Twitter.

2009年11月15日日曜日

linbinbin shared a new Qik video

Hi there - check this Qik video out

Ca22d3bdb22a440aa591c323c5056825



- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Connect with us on Facebook and Twitter.

2009年11月1日日曜日

linbinbin shared a new Qik video

Hi there - check this Qik video out

Ee12003d8713463ebe8d4ec96423a8d4



- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Connect with us on Facebook and Twitter.

2009年10月17日土曜日

linbinbin shared a new Qik video

Hi there - check this Qik video out

A1b4a29bb1ef441eb7e2aa35b0e9025d



- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Download Qik by visiting d.qik.com from the browser on your mobile phone.

linbinbin shared a new Qik video

Hi there - check this Qik video out

346cfa4336224e81ad0f8ad9c3aa2742

疲れる


- linbinbin
http://qik.com/linbinbin
-------
What is Qik?
Qik enables you to share live videos with your friends and family - right from your mobile phone.

Download Qik by visiting d.qik.com from the browser on your mobile phone.

2009年10月12日月曜日

http://www.cnii.com.cn/20080623/ca583126.htm

--
+----------------------------------+
|  Lin  ShuBin                |
|  藺   蜀斌                    |
|                                   |
|                                   |
+-----------------------------------+

2009年9月17日木曜日

gcc=?ISO-2022-JP?B?GyRCOEA4bDNIRCUbKEI=?=

#include <sys/types.h>
#include <unistd.h>
#include <limits.h>

#define HW1 "Hello, world!\n"
#define HW2 "Hello, world!\nHello, world!\n"

#define PRINTIT(args...) printf(args)

inline long
getnum(int argc, char *argv[]) __attribute__((always_inline));

int
main(int argc, char *argv[])
{
__label__ retok, retfailed;
int num = getnum(argc, argv);
char buf[strlen(HW1)*num + 1];
typeof(&buf[0]) formstr(char *buf, int n) {
buf[0] = '\0';
char *hw;
switch (n & 1) {
case 1 ... 1:
hw = HW1;
break;
case 0 ... 0:
n >>= 1;
hw = HW2;
break;
}
while (n-- > 0)
strcat(buf, hw);
return buf;
}
void *addr = &&retok;
char *cp = formstr(buf, num) ? : ({addr = &&retfailed; "Failed\n";});
PRINTIT(cp);
goto *addr;

retfailed:
return -1;
retok:
return 0;
}

long
getnum(int argc, char *argv[])
{
return ({long ret = 1;
if (argc > 1) {
ret = strtol(argv[1], (char**)NULL, 10);
if (ret < 0 || ret == LONG_MAX || ret == LONG_MIN)
ret = 0;
}
ret;});
}
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/index.html

2009年8月31日月曜日

chroot=?ISO-2022-JP?B?GyRCJEskRCQkJEYbKEI=?=

chrootとは、UNIXオペレーティングシステムにおいて、現在のプロセスとその子プロ
セス群に対してルートディレクトリを変更する操作である。ルートディレクトリを別
のディレクトリに変更されたプロセスは、その範囲外のファイルにはアクセスできな
くなるため、この操作をchroot監獄などとも呼ぶ。"chroot" は chroot(2) システム
コールおよび chroot(8) コマンドを意味する。

2009年8月30日日曜日

This widget has successfully logged in! Replace this text with your
first post.
<br class="khtml-block-placeholder">
<br class="khtml-block-placeholder">
You can use ⌘-B and ⌘-I to make text <b>bold</b> and
<i>italic</i>.

2009年8月25日火曜日

关 于C语言的函数指针

&#38382;&#39064;:&#35843;用存&#20648;地址从0&#24320;始的一段程序
(*(void(*)()0)();

由来:
函数指&#38024;的定&#20041;:void(*pFunction)(); 指&#38024;函数的原型&#20026;:
void(*)()
整数不能作&#20026;函数使用,将【0】&#24378;制&#36716;&#25442;&#20026;函数指&
#38024;的&#31867;型: (void(*)()0)();

&#20851;&#32852;,聚合(Aggregation),&#32452;合(composition)的区&#21035;。

&#20851;系&#24378;度的�&#24378;:&#20851;&#32852;---聚合---&#32452;合

&#20851;&#32852;:一般&#20851;系,如【&#24072;生&#20851;系】
聚合:has-a
&#32452;合:contains-a 生命周期相同

2009年8月12日水曜日

2009年8月11日火曜日

2009年6月28日日曜日

今日の一枚

バスケット選手か?

2009年6月22日月曜日

2009年6月18日木曜日

今日の一枚

裕太お兄ちゃんと一緒に

2009年6月15日月曜日

2009年6月12日金曜日

今日の一枚

昨日のかえりはへんな電車を乗った。

2009年6月11日木曜日

今日の一枚

最新のお気に入り玩具

2009年6月9日火曜日

2009年6月8日月曜日

今日の一枚

マクロレンズの練習。背景のボケはわるい。やはりレンズは安かった。

2009年6月7日日曜日

今日の一枚

多摩ロック祭り

2009年6月5日金曜日

今日の一枚

女の子ぽくなった。
最近、人見知りをしていると報告された。

2009年6月4日木曜日

今日の一枚

昨日から寝返りすることをマスターしたようです。

2009年6月3日水曜日

2009年6月2日火曜日

今日の一枚

??この表情。

2009年6月1日月曜日

今日の一枚

家に蚊を発見した。おでこの赤印は怪しい。

2009年5月31日日曜日

家はどこ?

探してくださいね。

今日の一枚

兎服。帽子が大きいすぎ。

2009年5月30日土曜日

近所の公園から

病院に行く途中でした。僕は晴れの日より
雲のほうが好き。性格は悪いかも。

今日の一枚

機嫌はよくない。

2009年5月29日金曜日

帰りの電車

週末、早く帰ろう。多摩急行ギリギリでした。

今日の一枚

最近、気にいったおもちゃです。

2009年5月27日水曜日

2009年5月26日火曜日

EBook

www.infoxa.com

今日の日本語

・屁の突っ張り:あんまり役に立たないこと。
 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1218250217
・ルビコン川を渡る:以後の運命を決め後戻りのできないような重大な決断と行動を
することの例えとして使われる。
 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1012353825
・助太刀(たすけたち)

2009年2月22日日曜日

2009年2月20日金曜日

2009年2月19日木曜日

人生初のムービ


産後二日目、病院のパパママクラスで

2009年2月17日火曜日

python-gui

ラベル: python
#!/usr/bin/python

import sys
from Tkinter import *

def die(event):
sys.exit(0)
root = Tk()
button = Button(root)
button["text"] = "Ave atque vale !"
button.bind("<Button-1>", die)
button.pack()
root.mainloop()

python-plot

#!/usr/bin/python
import popen2
import sys

p=popen2.Popen3("gnuplot");
print p.pid;
p.tochild.write("plot sin(x)\n");
if p.poll()==-1:
i = 0;
p.tochild.flush();
print "plot over!\n";
p.wait();
else:
print "not over!\n"
exit(0);

python-csv

#!/usr/bin/python

import sys
import os

csvfilemap = {}

def collect(csvfile, csvname, linerc):
src = {}
errno = {}
if csvfile.has_key(csvname):
src = csvfile.get(csvname)
if src.has_key(linerc[0]):
errno = src.get(linerc[0])
if errno.has_key(linerc[1]):
num = errno.get(linerc[1])
errno.update({linerc[1]:num+1})
else:
errno.update({linerc[1]:1})
else:
src.update({linerc[0]:errno})
errno.update({linerc[1]:1})
else:
csvfile.update({csvname:src})
src.update({linerc[0]:errno})
errno.update({linerc[1]:1})

def readline(infilename):
i = 0;
linerc = ['',0]

for line in open(infilename, 'r'):
if i > 1:
line = line.rstrip()
tokitem = line.split(',')
linerc[0] = tokitem[0].split('/')[-1]
linerc[1] = tokitem[4]
collect(csvfilemap, infilename, linerc)
else:
i = i+1
print "end readline of",infilename

paramlen = len(sys.argv)
if paramlen == 1:
print "Please input the file name to Analyse"
sys.exit()
else:
print "Analyse the",sys.argv[1:]

for filename in sys.argv[1:]:
if os.path.isfile(filename):
print "read file",filename
readline(filename)

else:
print "not file",filename

for csvk, csvfile in csvfilemap.items():
print "csv file is :",csvk
for srck, src in csvfile.items():
print "source file is:",srck
for errk, err in sorted(src.items()):
print "error is :",errk, " Count is :",err

print "bye"


File Severity Grp Nbr Des
cription レビュー日 担当者 対策予定 対策日
cmd_common.c ++ WARNING ++ <=6= 272 [I] 整数式の値は、符号付きの結果の型
で表現できないことがあります。 参照 - ISO-6.2.1.2 (符号付き整数への)変換
cmd/cmd_common.c ++ WARNING ++ <=6= 274 [I] 整数定数式の結果は符号付きで
は表現できません。 参照 - ISO-6.2.1.2 (符号付き整数への)変換

shell-trap

emacsコマンド2

Bookmark関連操作
C-x r m Bookmark作成
C-x r l Bookmark一覧
C-x r b Bookmarkへのjump
M-x bookmark-delete Bookmark削除

emacsコマンド1

基本機能一覧
操作 機能
Ctrl-x Ctrl-s ファイルに保存
Ctrl-x Ctrl-w ファイル名を指定して保存
Ctrl-x Ctrl-f ファイルの読み込み
Ctrl-x Ctrl-c 終了
Ctrl-g 中止(あらゆるコマンドを中断)
Ctrl-f カーソル移動 : 右
Ctrl-b カーソル移動 : 左
Ctrl-p カーソル移動 : 上
Ctrl-n カーソル移動 : 下
Ctrl-a カーソル移動 : 行左端
Ctrl-e カーソル移動 : 行右端
Ctrl-v カーソル移動 : 次のページ
ESC-v カーソル移動 : 前のページ
ESC-> カーソル移動 : ファイルの末尾
ESC-< カーソル移動 : ファイルの先頭
Ctrl-d 編集 : カーソル位置の1文字削除
DEL 編集 : カーソル前の1文字削除
Ctrl-k 編集 : カーソル位置から行末までを削除
Ctrl-@ 編集 : 範囲指定開始
ESC-w 編集 : 範囲記憶
Ctrl-y 編集 : ペースト
Ctrl-_ 編集 : Undo
Ctrl-s 検索/置換 : 前方にインクリメンタル検索
Ctrl-r 検索/置換 : 後方にインクリメンタル検索
ESC-% 検索/置換 : 前方に問い合わせ置換
Ctrl-x 2 ウィンドウ : 上下に分割
Ctrl-x 1 ウィンドウ : ウィンドウを1つに戻す
Ctrl-x o ウィンドウ : 別のウィンドウに移動
ESC-m 現在行の空白でない最初の文字に移動
Ctrl-@で範囲指定開始、ESC-Ctrl-\ 指定範囲全てで TAB を実行
Ctrl-@で範囲指定開始、Ctrl-w 指定範囲を削除(して、かつコピー)
Ctrl-@で範囲指定開始、Ctrl-x n n 指定範囲のみに編集範囲を限定
Ctrl-x n w 限定した編集範囲を解除
Ctrl-x b 新しいバッファを作成
Ctrl-x i カーソル位置に別のファイルを挿入
Ctrl-y ESC-y ペースト(リングバッファ)
Ctrl-x ( キーボードマクロ定義 : 開始
Ctrl-x ) キーボードマクロ定義 : 終了
Ctrl-x e キーボードマクロ定義 : 実行
ESC 回数 Ctrl-x e キーボードマクロ定義 : n回実行
ESC-x replace-string RET 無条件全置換
ESC-x write-region RET 指定した範囲のみファイルに保存
ESC-x goto-line RET 指定した行に移動
Ctrl-x r k 矩形領域を削除(して、かつコピー)
Ctrl-x r d 矩形領域を削除
Ctrl-x r y 最後にコピーした矩形領域をペースト
Ctrl-x r o 空白で埋めた矩形領域をペースト(挿入)
ESC-x clear-rectangle 矩形領域を空白で置き換える

M-x picture-modeとするだけで,利用できます.基本的な操作は普通のテキストと同
じです.
C-j で行の複製ができるので,罫線を引きやすくなっています.
また,文字を消しても,代わりにスペースが挿入されますので,図がずれないように
なってます.

また,カーソル移動が普通とは違っています.デフォルトでは文字を入力すると,
どんどん右へ追加されていきます (普通のテキストと同じ) .

C-c \ で右下, C-c / で左下,
C-c ' で右上,C-c ` で左上,
C-c . で下,C-c ^ で上,
C-c > で右,C-c < で左へ

これらは,文字を入力すると,この方向へ移動するようになります.
単にこの方向へカーソル移動したい時には,C-c C-f を使います.C-c C-b で逆方向
へ移動できます.

編集が終わったら,C-c C-c で終了します.そうすると,余計なスペースを削除して
前のモードに戻ります.

他の機能は,

* C-c C-dでの文字削除.普通の削除ですので,図がずれます.
* リージョン選択後にC-c C-rで罫線を作成
* リージョン選択後にC-c C-kで矩形領域 (リージョンの始点と終点を頂点とす
る長方形領域) をカット
* C-c C-yでC-c C-kでカットしたものを貼り付け
* リージョン選択後にC-c C-kで矩形領域 (リージョンの始点と終点を頂点とす
る長方形領域) をカット
* リージョン選択後にC-c C-wで矩形領域をカットしてレジスタへ保存
* C-c C-xでレジスタから貼り付け.

M-x show-paren-mod 括弧などペアで表示
C-M f 次ぎの括弧へ移動、C-M b 前の括弧へ戻る

M-x cscope-index-files インデックスファイル作成
C-s-s 定義シンボルをサーチ
C-s-g グロバルの定義を探す


テーブル追加
M-x table-insert
テーブル編集モードを解除するために
M-x table-unrecognize-table
再度テーブル編集モードに入る時はテーブルの位置にカーソルをもっていって、
M-x table-recognize-table

C-> (table-widen-cell)
カーソル位置のセルを横拡張
C-< (table-shorten-cell)
カーソル位置のセルを横収縮
C-: (table-justify)
セル中の文字列の位置を操作(Left/Center/Right)
縦方向・桁方向の両方が可能
table-split-cell
セルの分割
C-- (table-split-cell-vertically)
セルの横分割
C-| (table-split-cell-horizontally)
セルの縦分割
C-* (table-span-cell)
セルの結合

C言語のマクロ

1、2重比較を注意しましょう。
例:
#define isalpha(s) if((s) > 'a' && (s) < 'Z')
isalpha(*s++);
結果は?

2、C言語アスキー文字コード判別ライブラリの実装例

インデックス 0 0x32 0x7b

_ctype+1[]
+---+-------+----+-------+----+---+---+---+
|0--|-------|0x01|.......|0x02|...|...|...|
+---+-------+----+-------+----+---+---+---+

文字コード EOF 'A' ↑ 'z'


各ビットの定義
8 7 6 5 4 3 2 1 0
+-----+-----+-----+-----+-----+-----+-----+-----+
|-----|-----|-----|-----|-----|0-9 |a-z |A-Z |
+-----+-----+-----+-----+-----+-----+-----+-----+

3、文字列処理の落とし穴
例:
#define debug(s) sprintf("message is %s", s)

debug(message[0]);

結果は:sprintf("message is %message[0]", message[0]);


4、文字列処理記号”#”と”##”

# は、引数を文字列に変換する。

#define string(x) #x

string(Hello World)

"Hello World"

## は二つの識別子を連結させる。

#define comb(x, y) x ## y

comb(hello, world)

helloworld