home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

861 - 870 / 1320    [|<]  [|<]  [<]  81  82  83  84  85  86  87  88  89  90   [>]  [>|][>|]
タイトル/名前 更新者 更新日
C言語系/「デーモン君のソース探検」読書メモ/05, locate(1) msakamoto-sf 2010-01-10 15:48:17
C言語系/「デーモン君のソース探検」読書メモ/04, uuencode(1),uudecode(1) msakamoto-sf 2010-01-10 15:47:29
C言語系/「デーモン君のソース探検」読書メモ/02, getopt(3) msakamoto-sf 2010-01-10 15:45:47
C言語系/「デーモン君のソース探検」読書メモ/01, getpass(3) msakamoto-sf 2010-01-10 15:45:27
C言語系/「デーモン君のソース探検」読書メモ/03, getchar(3) msakamoto-sf 2010-01-10 15:45:03
JavaScript/Bookmarklet/「右クリック禁止」の禁止 msakamoto-sf 2010-01-08 16:06:03
日記/2010/01/07/「エキスパートCプログラミング」読了 msakamoto-sf 2010-01-07 15:07:22
C言語系/00_参考資料 msakamoto-sf 2010-01-07 14:54:22
日記/2010/01/06/プロトタイプ宣言の引数型の格上げとかK&Rとか、 gccの"-traditional", "-ansi", "-pedantic"オプションとか。 msakamoto-sf 2010-01-06 18:36:47
C言語系/NetBSD1.6における setjmp(), longjmp() の実装(2) msakamoto-sf 2010-01-04 14:31:53
ソート項目 / ソート順     1ページ 件ずつ表示

C言語系/「デーモン君のソース探検」読書メモ/05, locate(1)  

所有者: msakamoto-sf    作成日: 2010-01-09 21:50:23
カテゴリ: BSD C言語 

お題:locate(1)がデータファイルを構築する仕組みを追跡せよ。

先に結末:追跡しきれませんでした。bigramや文字列差分を組み合わせた圧縮そして展開のコード、自分の理解力とソース読解力では太刀打ちできませんでした。゚(゚´Д`゚)゚。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-10 15:48:17
md5:d103a9f27dd02028dd10f195b407dbd7
sha1:afe2d8ef99f213cf5df2b28efb2dccf7a4539ae6

C言語系/「デーモン君のソース探検」読書メモ/04, uuencode(1),uudecode(1)  

所有者: msakamoto-sf    作成日: 2010-01-09 18:05:57
カテゴリ: BSD C言語 

お題:uuencode(1)の符号化・復号化の仕組みを追跡せよ。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-10 15:47:29
md5:4cc882d6d6fa31a9f47c0393c8ce898b
sha1:733df2cf829e519ba1034eff5712ad866c87f085

C言語系/「デーモン君のソース探検」読書メモ/02, getopt(3)  

所有者: msakamoto-sf    作成日: 2010-01-08 13:56:50
カテゴリ: BSD C言語 

お題:"-"で始まるファイルを削除するには

rm -- -foobar

とするが、オプション解析の中身とかどうなってるの?

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-10 15:45:47
md5:14ac2a37b75e615e81296c3d5bf778b5
sha1:8697d009109fb45e52655dbdc8adc3e92c12d0f4

C言語系/「デーモン君のソース探検」読書メモ/01, getpass(3)  

所有者: msakamoto-sf    作成日: 2010-01-07 23:56:49
カテゴリ: BSD C言語 

お題:ログイン時などに

Password:

と表示され、入力するけど文字が画面に表示されないのは何で?

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-10 15:45:27
md5:af1a1a9b984aaa75aa925b1463904368
sha1:d1b998d975af1272384c2d2e7af16c828dbfce52

C言語系/「デーモン君のソース探検」読書メモ/03, getchar(3)  

所有者: msakamoto-sf    作成日: 2010-01-08 22:20:09
カテゴリ: BSD C言語 

お題:getchar(3)がバッファを使うことでファイルアクセス回数を少なくしている、その仕組みを追跡せよ。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-10 15:45:03
md5:b731b775a4740fa63819a359a50da938
sha1:daa5a2b8a0268402077fb13672301b75e4f575cf

JavaScript/Bookmarklet/「右クリック禁止」の禁止  

所有者: msakamoto-sf    作成日: 2010-01-08 16:04:01
カテゴリ: JavaScript 

javascript:alert('右クリック禁止を禁止!'); document.body.oncontextmenu=''; \
           document.oncontextmenu=''; document.onmousedown=''; void(0)

出典:"イベントで「右クリック禁止」を禁止してみよう - @IT"
http://www.atmarkit.co.jp/fcoding/articles/js/02/js02c.html



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-08 16:06:03
md5:7fc96d9f7a19f043fe681777b4230197
sha1:fb2508128dea3034ec56a6ddc63ad5742afad8dc

日記/2010/01/07/「エキスパートCプログラミング」読了  

所有者: msakamoto-sf    作成日: 2010-01-07 14:55:02
カテゴリ:

もうちょっと早めに読んでおきたかったナー、という良書。

これとか「ふつうのコンパイラをつくろう」とか読んでて思ったのだけれど、本当に「C言語のポインタと配列をマスターした!」と言えるのは、C言語のコンパイラを作ったことが必須条件じゃないかなーとすら思う。

でも、最近はアセンブラにも手を出して良かったな~と思うことも多い。読んでる本がLinuxカーネルやC言語のディープな話関連が多くなってるからだろうけど、かなりアセンブラが出てきてるので、基礎知識として勉強しておいたおかげで、本が大分読みやすかった。アセンブラ周りの話で停まったり躓くことが無かったのは助かったと思う。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-07 15:07:22
md5:c21bd139a00b43129bf1578c1e69b8e3
sha1:f1b4ef467d23c31d3e5fb738f676f5813a1d83d0

C言語系/00_参考資料  

所有者: msakamoto-sf    作成日: 2009-11-21 01:03:29
カテゴリ: BSD C言語 Linux UNIX プログラミング 読書 

参考書籍

読書/C言語関連と重複しますが、C言語を基本としてLinux/UNIX/Windowsでのプログラミングを勉強するのに読んだ本などを。

あと、Amazon上で見つからなくて残念なのですが「独習C++」の著者であるハーバート・シルト氏による「Windows32 API プログラミング入門」(正確なタイトル失念)にもお世話になりました。当時はC++Builderの世界しか知らなかったので、Windows32APIでごりごりウインドウを作ったりメニューを作ったりダイアログを表示したりして、イベントループを書いたりなど、大変勉強になりました。
「猫でも分かる」シリーズが出たり、仕事がLinuxやJava中心にシフトした事もあって本は手放してしまいましたが、大学時代にあの本を読み込んだ経験は無駄にならないどころか、VBの仕事でも生きてきたりとそれなりに活躍してます。

  • C言語によるUNIXシステムプログラミング入門
    • カスタマレビューにもありますがサンプルコードで若干warningやヘッダファイル絡みのミスがあったり、シグナルの説明がANSI-Cのsignal()関数だけで、sigaction()系が載っていないなど不満もあります。今、他人に奨められるかと言われたら難しいかも知れません。
    • とはいえ、自分自身はこの本でLinux/UNIXプログラミングにすんなりと入り込む事ができましたので、ここに載せておきます。
  • Advanced Programming in the UNIX(R) Environment (2nd Edition) (Addison-Wesley Professional Computing Series)
    • 「詳解 UNIXプログラミング」の原著です。お仕事上や趣味のプログラミングなどで、どうにもLinuxのjmanやmanページだけではにっちもさっちも行かなくなった時などに紐解く、追いつめられた時の最終兵器として使ってます。あんまり出番無いですが、出る時は威力絶大で助かります。
  • Inside Linux Software オープンソースソフトウェアのからくりとしくみ
    • Autoconf/Automake/LibtoolなどLinuxを支えるGNUツールを、サンプルを交えて詳解しつつ、manページやtexi, DocBook、さらにはdiff, patch, rpmパッケージまで網羅していながらコンパクトにまとめられている希有な書籍だと思います。というかこの本でようやく、autotools系の動きを把握できました。
    • 昨今はJVM上で動く言語や"yum"/"apt"でさくっと入れられるスクリプト言語ばかりになってきましたが、それでも"./configureって何してるんだろう?"って疑問に思った人はこの本を読んでみると良いかもしれません。

参考URL

コンパイラ, DOS環境など

1997-2003年、高校~大学にかけてはBorland C++ BuilderやC++ Compilerに大変お世話になったのだけれど、VisualStudioが"Express"エディションとして無償提供される事になり、やはり昨今は素直にVisualC++のExpressエディションか、Linux/UNIXのGNU開発ツールで勉強する人が増えているのだろうか・・・。



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2010-01-07 14:54:22
md5:2649653accdcbce35473eb9db45640be
sha1:72beb00db02043a05b7370072e5502c91734ac17

日記/2010/01/06/プロトタイプ宣言の引数型の格上げとかK&Rとか、 gccの"-traditional", "-ansi", "-pedantic"オプションとか。  

所有者: msakamoto-sf    作成日: 2010-01-06 17:54:24
カテゴリ: C言語 

また「エキスパートCプログラミング」ネタ繋がりです。

自分は"K&R"のC言語本を読んだことが無いので、昔のC言語では関数のプロトタイプ宣言で引数を指定しなかったなんて初めて知りました。

int foo();
int foo(a, b)
    int a;
    char b;
{
    ...
}

こんな書き方してたんですね・・・。先日NetBSD1.6のsetjmp()の実装調べてた時に"__P"マクロとゆーのに出会い、それ繋がりです。

で、K&R時代のC言語では引数の型が、自動的に格上げされてたみたいです。charとかshortはintへ(ワードより小さいサイズはワード単位へ)、floatはdoubleへ、という具合に、アセンブラレベルで変換されてしまうみたいですね。
一方でANSI時代のC言語では引数の型の格上げはなくなり、charはchar, shortはshort, floatはfloatとしてアセンブラレベルでちゃんと渡されるようになったらしいです。

gccの場合はプロトタイプ宣言で古い書き方もサポートしてはいますが、ANSI-Cとの兼ね合いで引数の格上げがややこしいことになってるっぽいです・・・。
詳しくは "info gcc" -> "C Extension" -> "Function Prototypes"、あるいは下記URLの「プロトタイプ宣言と古い形式の定義」参照。
http://www.sra.co.jp/wingnut/gcc/gcc-j.html

ほか、gccのinfo見てて幾つかオプションの意味を誤解してたのがあったのでメモしておきます。
("info gcc" -> "Invoking GCC" -> "Option Summary")

"-traditional" : てっきり"K&R"のCでコンパイルすると思ってたんですが、厳密には「古いC言語の幾つかの機能をサポートする」、という意味で、ANSI時代の機能も引き続き使える、という意味でした。古いコードの五巻維持が目的で、別に新しい時代の機能が使えなくなる、というわけじゃなかったです。

"-ansi" : こちらは、"ANSI-Cに従わないコードは全部エラーにする"程の強い意味をもってると思ってたんですが、そこまで強くはなかったみたいです。確かにANSI規格と互換性の無いGCCの機能をオフにしたりはするようですが。普通に ANSI規格の機能をサポートする、という意味でした。(加えて"__STRICT_ANSI__"マクロの定義や、幾つかのビルトイン関数が組み込まれなくなったりするようです)
本当に、ANSI-Cに従ってないコードを拒絶/警告するには "-pedantic" オプションを組み合わせるようです。

"-pedantic" : ANSI-CとISO-C++に厳密に準拠した場合に、規格が要求している警告を全て発する。・・・のですが、かといって「じゃぁこれ使えば、ANSI/ISOに従っていないコードは全て拒絶出来る、チェック代わりになるのだが」とは行かないようです。規格の方で「警告メッセージを要求している」ものについては警告を発しますが、適合していなくとも規格の方で警告メッセージを要求していないものについては無視されるようです。
ややこしいですね・・・。

それにしても、C言語って少しディープな世界に首突っ込むと、即座にCPUや機械語(アセンブラ)レベルの知識が絡んできます。ぶっちゃけC言語勉強するなら、アセンブラや電子計算機の歴史を学んでからの方が効率が良いよな気が(最近は)してます・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-06 18:36:47
md5:14584f8de08aa78f2918f8d02ebb8496
sha1:5847669178a71cac8d7dba6d4156e421c122e3fd

C言語系/NetBSD1.6における setjmp(), longjmp() の実装(2)  

所有者: msakamoto-sf    作成日: 2010-01-04 14:31:05
カテゴリ: Assembler BSD C言語 

前回、NetBSD1.6でのsetjmp/longjmpの中身を追いかけたところ、リンク後には"__setjmp14"/"__longjmp14"というシンボルにいつの間にか名前が変わっていた。
これについて簡単に調べてみた。
結論から言うと、setjmp.h の中で setjmp/longjmpが組み込みアセンブラでの"__setjmp14"/"__longjmp14"の呼び出しにdefineされていた。

(全て表示する)
プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-04 14:31:53
md5:6898808f879f789faf2f55ab36429dd8
sha1:aea9b287ba469706c49b0d1fabdff2b437783fd9