2007年9月28日金曜日
またやった - Ctrl-s

なんだか知らないけど、ついついやっちゃうんだよね、Ctrl-sの入力。

で、入力を受け付けなくなる。

毎回やるたびに、ググって解決方法を探す。
いやぁ、頭悪いね。

Ctrl-q で解決しますね。



1 コメント | コメントを書く | コメントの表示
IPアドレスが取れない

ある本を使ってお勉強中。
サーバとクライアントのプログラムを作って通信(Telnet)テスト。

本のサンプルどおりにコーディングするも…

(略)

struct sockaddr_in from;
char client_address[80];

(略)

sprintf(client_address, "%d.%d.%d.%d", from.sin_addr.S_un.S_un_b.s_b1, from.sin_addr.S_un.S_un_b.s_b2, from.sin_addr.S_un.S_un_b.s_b3,from.sin_addr.S_un.S_un_b.s_b4);

(以下省略)


test.c:173: error: structure に `S_un' という名前のメンバはありません
test.c:174: error: structure に `S_un' という名前のメンバはありません
test.c:175: error: structure に `S_un' という名前のメンバはありません
test.c:176: error: structure に `S_un' という名前のメンバはありません

…という結果に。

/usr/include を検索(find/grep)しても、見つからない…ということは、そもそもIPのとり方がNGだと考えるしかない。

でもって、探してみるとinet_ntoa()という関数があるらしい。

なので、こう書いてみる。
sprintf(client_address, inet_ntoa(from.sin_addr));


$ gcc test.c 
test.c: In function `MainLoop':
test.c:172: 警告: 引数 2 個の `sprintf' を渡しますにより、キャストなしで整数からポインタを作りまし
$


ありゃ。訂正。
sprintf(client_address, "%s", inet_ntoa(from.sin_addr));


$ gcc test.c
$

無事コンパイル完了。

これが正解なのかどうかは知らないけどね。
同じサーバからtelnetしてみたら、127.0.0.1が来たから問題ないかな~と思ったんだけど??



0 コメント | コメントを書く | コメントの表示
2007年9月27日木曜日
Compound gadget - iGoogle

個人的なメモなのです。

最近Windows Live.comからiGoogleに完全に移行しました。
本当はどっちでもいいんだけどさ。

で、使ってるうちに、コンテンツが山盛りになってきて、困ってたところに、こういうのを見つけた。

Compound gadget

複数のコンテンツをひとつにまとめるガジェット。
こんなカンジ。

これ便利。


でも、ひとつ気になってるのは、iGoogleにはLive.comと違って、自分が追加したコンテンツを管理できないこと。
これまで追加したコンテンツをどこかにまとめて持っててくれるといいんだけどなぁ。
一旦削除したものは、またURLをコピペして追加しなけりゃならん。
いや、なにか方法はあるのかもしれないけど。

【追記】
タブとしてまとめた場合、タイトルがリンクじゃなくなるみたい。
これはちょっと…不便かな?



0 コメント | コメントを書く | コメントの表示
2007年9月18日火曜日
math.h関連のコンパイルエラー

引き続きC言語のお勉強中。
ちょっとポインタあたりを検索しつつ、お勉強してみる。

でもって、サンプルを実行中、どーしてもコンパイルエラーになる。

$ gcc -o sample sample.c
/tmp/ccgJ0RxZ.o(.text+0x30): In function `sample':
: undefined reference to `sqrt'
collect2: ld はステータス 1 で終了しました
$


なんだよー、math.hきちんとインクルードしてんのにさぁ。

答えは簡単。
で定義されている関数の本体は全て math ライブラリにあります。したがってこのような関数を用いるには、リンクの際に -lm が必要になるわけです。
The Linux GCC HOWTO - 6.2 ライブラリに尋ねる(sin() はどこにいるの?)

いやはやお恥ずかしい限りです。
だからさ、初心者なんだって、結局は。
きちんと勉強をした方がよさそうだなぁ。

The Linux GCC HOWTO
http://www.linux.or.jp/JF/JFdocs/archive/GCC-HOWTO.html



0 コメント | コメントを書く | コメントの表示
2007年9月12日水曜日
恥ずかしながら、vi の置換

すーぐ忘れるんですよ、コレ。

:%s/置換前/置換後/

これだと一箇所だけで、
:%s/置換前/置換後/g

で、全体を置換するんだけど、viのバージョン?設定?によっては、前者でも全て置換されてしまうみたいね。

:n,Ns/置換前/置換後/

これでn行目からN行目までの置換を行う、と。



0 コメント | コメントを書く | コメントの表示
2007年9月5日水曜日
lsattr と chattr

別に新しい話題でもないけど、知らなかったのでちょっとメモ。

Linuxのext2、ext3のファイルシステムにおいて、パーミッション以外のファイル属性を操作するもの。
lsattrが表示でchattrが変更のコマンド。

例えばlsなら、

# ls -la test
-rw-r--r-- 1 root root 0 8月 29 00:26 test

となる。rootであれば書き込み可能だし、その他のユーザであれば読み込みだけ可能ということになる。
そこで、lsattrを実行する。
# lsattr test
------------- test

現状、何も設定されていないので、chattrで変更不可能を表すi(immutable)を設定してみる。
# chattr +i test

念の為に確認。
# lsattr test
----i-------- test


で、削除(rm)してみる。
# rm test
rm: remove write-protected 通常の空ファイル `test'? y
rm: cannot remove `test': 許可されていない操作です


ほほぅ…

でもってiフラグを消す。
# chattr -i test

念の為に確認。
# lsattr test
------------- test

で、削除。
# rm test
rm: remove 通常の空ファイル `test'? y
# ls test
ls: test: そのようなファイルやディレクトリはありません

はい、無事消えました。


ところで、lsattrのオプションに「-a」がある。これはJMから引用すると、
`.' ではじまるファイルも含め、全てのファイルおよびディレクトリを表示する。

ということで、lsコマンドと同じ。
じゃ、「-l」は? と思ったけど、記述は無い。
manページ開いてもない。ってことで、実行してみました。
# touch test
# lsattr -l test
test               ---


# chattr +id test
# lsattr -l test
test               Immutable, No_Dump

ははぁ、なるほど。

…と思ってたら、usageにはしっかりlオプションの記載があった。
# lsattr -r
lsattr: オプションが違います -- r
Usage: lsattr [-RVadlv] [files...]

でも、manにはないなぁ。

いやぁ、まぁ、誰もこんな情報は欲してないと思うけど。

# コマンドなど、一部半角スペースを全角スペースに置き換え。
# スタイルシートを修正しないといかんか?



0 コメント | コメントを書く | コメントの表示
2007年9月3日月曜日
一発でウィンドウのリサイズ - SIzer

これはどこで見たのか、完全に忘れてしまった。

ウィンドウの端で右クリックすると下の画像のような窓が現れて、一発でサイズ変更してくれるソフト。



設定画面はこんなカンジ。



サイズ変更とともにウィンドウの場所も指定できるみたい。

少し前の仕事だったら、ウィンドウをいくつも渡り歩く必要があったので、朝の準備にこういうのはよかったかも(でも、ウィンドウのサイズや場所って覚えてるんだよな。そのときはバッチファイルでウィンドウ4つとプロンプトを開いてたけど)。

タスクマネージャ上では4,920Kと、まぁ、わりと軽いね。

Sizer
http://www.brianapps.net/sizer.html



0 コメント | コメントを書く | コメントの表示
Template Design: © 2007 Envy Inc.