タグ

cに関するwata_dのブックマーク (20)

  • A micro-manual for LISP Implemented in C

    A micro-manual for LISP Implemented in C Recently I had to go through some code that uses the uIP TCP/IP stack, which reminded me, it has been a long time since I did something in C so I ended up spending the weekend implementing the 10 rules John McCarthy described in his paper A Micro-Manual for Lisp - not the whole Truth. This is a literate program, the code in this document is the executable s

    wata_d
    wata_d 2010/08/24
  • パスワードの判定にstrcmpを使うべきでない理由

    strcmpを使ってパスワードを判定すると、タイミング攻撃 (timing attack) にやられる危険性があることの説明 (約20分)。 まとめ: パスワードなどの文字列を strcmp関数 (およびそれに類する関数) を使って判定すると、 その判定にかかる時間を測定することで、パスワードが推測できてしまう場合がある。 これをタイミング攻撃 (timing attack) という。 この例では、36種類の文字を使った8文字分のパスワードを推測するのに、 通常のしらみつぶしな方法 (bruteforce attack) … 368 = 2821109907456回 の試行が必要なのに対して、 タイミング攻撃を使った方法 … 10000×8 = 80000回 しかかからない。タイミング攻撃を成功させてしまうと、 重要な情報が漏洩してしまう危険性がある。 これを防ぐためには、なるべく実行時間

  • プログラマの教養は manual pages に宿る (その2)

    ● [Thoughts] プログラマの教養は manual pages に宿る (その2) manual pages の構成や内容は、オペレーティングシステムによりかなり様相が異なりますが、その背景にある設計者の思想を理解するためには、Cソースファイル中で頻回に登場する「ヘッダーファイル」の意味を正確に把握しておく必要があります。 ヘッダーファイルを巡る諸問題 残念なことに、ヘッダーファイルの取り扱いは、動作環境や処理系によって影響を受けることもあり、従来のC言語入門書や UNIX システムプログラミング解説書で深く追求されることはありませんでした。 printf 関数を使用する時は、プログラムの先頭に #include <stdio.h> と書く。 C言語入門書中で必ず登場するこの一文ですが、その意味が語られることはまずありません。向学心旺盛な読者であれば、#include <stdio

    wata_d
    wata_d 2008/03/07
  • fitzrovian.com

    Forsale Lander

    wata_d
    wata_d 2008/02/20
    難解なHello, World!
  • CINT < ROOT < TWiki

    CINT is a C/C++ interpreter aimed at processing C/C++ scripts. Scripts are programs performing specific tasks. Generally execution time is not critical, but rapid development is. Using an interpreter the compile and link cycle is dramatically reduced facilitating rapid development. CINT makes C/C++ programming enjoyable even for part-time programmers. CINT is written in C++ itself (slightly less t

    wata_d
    wata_d 2008/02/18
    インタプリタ
  • アルゴリズムとデータ構造演習

    演習の目的は、プログラミング言語C及びSchemeの基礎を習得し、 それらの言語を通じて、講義「アルゴリズムとデータ構造」の理解を深めることにあります。 重要なお知らせ 特に重要な連絡事項はここに掲載されます。 課題について 課題には、A課題とB課題があります。(課題番号の末尾が種類を表します。) B課題が基礎的な課題で、A課題が発展的な課題となっています。 B課題を全問解くことが、単位取得の目安です。 C入門第1回(10月10日) C入門第2回(10月17日) C入門第3回(10月24日) C入門第4回(10月31日) C第1回(11月7日) C第2回(11月14日) C第3回(11月21日) C第4回(11月28日) C第5回(12月5日) Scheme第1回(12月12日) Scheme第2回(12月19日) Scheme第3回(1月9日) Scheme第4回(1月16日) C補講

  • はてなブログ | 無料ブログを作成しよう

    【自分語り】1推しの卒業によせて . 私の1推し、ゆきりんこと柏木由紀ちゃんが、17年に渡り在籍したAKB48を卒業することになった。 この機会に、ゆきりん推し(48ファン)としての自分自身のことをすべては不可能であるものの振り返ろうと思う。 内容からして世代がわかることも仕方ないし、限りなくゼ…

    はてなブログ | 無料ブログを作成しよう
    wata_d
    wata_d 2007/11/18
  • hogetrace - 関数コールトレーサ - memologue

    でかいソフトウェアの、大量のソースコードを短時間で読む必要が生じたので、その補助ツールとしてptrace(2)ベースのLinux用関数トレーサを自作しました。こういうツール上でまずソフトウェアを実行してみて、どのファイルのどの関数がどういう順で呼ばれるか把握おけば、いきなりソースコードの山と格闘を始めるより楽かなーと思いまして。せっかく作ったので公開します。 http://binary.nahi.to/hogetrace/ straceはシステムコールだけ、ltraceは共有ライブラリ(DSO)の関数呼び出しだけ*1をトレースしますが、このツールは、実行バイナリ中の自作関数の呼び出しもトレースします。例えば再帰で1から10まで足し算するソースコードを用意して % cat recursion.c #include <stdio.h> int sum(int n) { return n ==

    hogetrace - 関数コールトレーサ - memologue
    wata_d
    wata_d 2007/10/12
  • code

    CODE < ^ > << new | old >> / 2023-03-27

    wata_d
    wata_d 2007/04/18
  • 技術計算用Cプログラム ソース

    注意事項(著作権ほか)( General Note ; Copyright, etc.) Q&A(使用上のヒント) 作成者 : Tomy           作成日 : 平成8年10月15日 Author : Tomy       Creation Date : Oct. 15th. 1996 最終修正日 : 平成17年11月4日 Last Alteration : Nov. 4th. 2005 完成度( Completion ) : 60%

  • clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション

    Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
    wata_d
    wata_d 2006/12/18
  • ホワット・ア・ワンダフル・ワールド glibc malloc は素晴らしい

    The 67th kernel reading party : Google Video (via glibc malloc) 非常に良かった.僕はまだ坊やなので,大きなお兄ちゃんたちの話にあんまりついていけなかったけど,みんな楽しそうで素晴らしかった.僕もこういう素敵な大人たちみたいになりたいと思いました. 以下,見ながら取ったメモなので,時系列にはなってない (1 時間半は長いけど,見る価値アリーナ). ・ 小崎さんは髪サラサラちょーイケメンスマートお兄さん mixi の紹介文などから,なんとなく軍曹系でマッチョでアフロなイメージがあったので,非常に意外だった (これ系の AA (゚Д゚)y-~~ のイメージが強かった). ・ 会場のつっこみが濃すぎる ・ 観衆が凄すぎる (その中で発表している小崎さんも凄すぎる) K&R malloc なんかはもうわかりきっていること前提 この時点で

    wata_d
    wata_d 2006/10/03
  • ホワット・ア・ワンダフル・ワールド Moe Effective C 第 2048 項 「標準入力をコンパイルしたい時は /dev/tty を include しよう」

    こんなことができたのか… $ echo '#include "/dev/tty"' > tty.c $ gcc tty.c (cat と同様に,ソースコードを入力する) #include<stdio.h> int main() {printf("hello, tty!\n");return 0;} (Ctrl-d で終了) $ ls a.exe tty.c $ ./a.exe hello, tty! 研究室の Windows PC で試したので,/dev/stdin とかはありませんでした… /dev/tty は windows cygwin でも使えるのか.なんて汎用的 ! (WindowsLinux 以外の OS なんて,この世に存在しませんよ.ファンタジーやメルヘンじゃないんですから (セカイ系自分が世界の中心病患者管理人)) さらに,shinichiro_h さんからいただい

    wata_d
    wata_d 2006/09/19
  • 社本@元ネオニート Blog - 社本@元ネオニート Blog

    プロフィール 働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日人は私だけ。なんとか。。やっていけてるようです。 目次 ホーム 連絡をする RSS Blog 利用状況 投稿数 - 546 記事数 - 0 コメント - 1700 トラックバック - 記事分類 過去の記事 2013年03月 (1) 2012年10月 (1) 2012年09月 (4) 2012年01月 (2) 2011年12月 (1) 2011年11月 (1) 2011年10月 (5) 2011年07月 (5) 2011年06月 (4) 2011年05月 (4) 2011年04月 (6) 2011年02月 (4) 2011年01月 (3) 2010年11月 (3) 2010年03月 (1) 2010年01月 (4) 2009年1

    wata_d
    wata_d 2006/09/10
  • const char* const p = "ABC"; と const char q[] = "ABC"; はどちらがよいか、みたいな与太 - memologue

    諸事情あって、ふと前に読んだドキュメントに書いてあった細かいことが気になった。いやいつも細かいけど。 const char* const p = "ABC";より const char q[] = "ABC";のほうがいいのか?的な話。後者の方が良いらしいので、確認するととともに、すぐになんでも書くのはどうなんだと思いつつも無駄に細かく解説。いろいろ間違ってたらゴメンナサイ。C言語入門? 先に結論 共有ライブラリやPIEな実行ファイルを作る場合は、後者の書き方(const char q[] = "xxx")のほうが良さそうですね。PIEじゃない単なる実行ファイルを作るときは、最適化かけるならあんまりかわらないかも。 比較1) コンパイル時の最適化の効きやすさ 最適化といってもいろいろありますが、↓に限って言えば、const char q[] のほうが効きやすいようですね。 gcc vers

    const char* const p = "ABC"; と const char q[] = "ABC"; はどちらがよいか、みたいな与太 - memologue
    wata_d
    wata_d 2006/09/08
    そうだったのか...
  • malloc failure (その1) - Wataru's memo(2006-07-15)

    ● [UNIX] malloc failure (その1) failmalloc と危機管理 奥地氏の enbug diary で、とても刺激的なお題を見つけました。failmalloc と呼ばれる共有ライブラリパッケージを使ったお話ですが、要は "意図的にメモリ確保に失敗する malloc 共有ライブラリ" を使い、メモリ管理を内部で正しく行っているかどうか、"外部から" 簡単に検証してみようというものです。 failmalloc は英文の紹介ページですが、その内容はさすがです。なぜ、氏がこのような事を思いついたのかは、次の一言に集約されています。 経験不足な人が書いたコードはエラーチェックが無茶苦茶である。 要するに、失敗することを考えていない。 後で述べますが、私は Linux 環境もまた「失敗することを考えておらず、危機意識に欠けている」と常々感じていましたので、failmallo

    wata_d
    wata_d 2006/07/19
  • Failmalloc

    Welcome to failmalloc. This software generates a shared library which can be loaded by LD_PRELOAD or linked at compilation time. The idea behind failmalloc is to demonstrate what really happens if memory allocation fails. Unfortunately, most programs in this world are not robust, mostly because programmers are careless, but sometimes because programmers are too brave. Regardless of whatever reason

    wata_d
    wata_d 2006/07/15
    失敗するmalloc.テスト等に使えるか
  • Judy Arrays Web Page

    What is Judy? Judy is a C library that provides a state-of-the-art core technology that implements a sparse dynamic array. Judy arrays are declared simply with a null pointer. A Judy array consumes memory only when it is populated, yet can grow to take advantage of all available memory if desired. Judy's key benefits are scalability, high performance, and memory efficiency. A Judy array is extensi

  • 関数のアドレスと空ポインタの比較 | 移植性のあるCプログラミング

    一定期間更新がないため広告を表示しています

    関数のアドレスと空ポインタの比較 | 移植性のあるCプログラミング
    wata_d
    wata_d 2006/06/02
  • 『C言語による最新アルゴリズム事典』

    奥村晴彦『C言語による最新アルゴリズム事典』技術評論社,1991年,ISBN4-87408-414-1,2400円 大きな画像(1.1M) 1987年10月にPascalを使った『コンピュータ・アルゴリズム事典』を,1991年2月にその改訂版としてANSI C言語を使った『C言語による最新アルゴリズム事典』を出版しました(いずれも技術評論社)。そのサポートページをつくろうと思いながら多忙のためなかなかできませんでした。とにかく始めなければ……というわけで,サポートページまがいのものを作ってみました。 石田晴久ほか『コンピュータの名著・古典100冊』(インプレス,2003年)に選んでいただきました。100冊といっても日人の書いたものは20%しかなく,たいへん恐縮しています。 Frequently Asked Questions どの銘柄のC言語ですか? ほぼ当時のANSI Cドラフトに基づ

  • 1