タグ

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
    インタプリタ
  • アルゴリズムとデータ構造演習


    CScheme     ABBABC11010C21017C31024C41031C1117C21114C31121C41128C5125 Scheme11212 Scheme21219 Scheme319 Scheme4116C
  • はてなブログ | 無料ブログを作成しよう


    1 . 117AKB48 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 Cif 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 使  (Windows  Linux OS ()) shinichiro_h 
    wata_d
    wata_d 2006/09/19
  • 社本@元ネオニート Blog - 社本@元ネオニート Blog


         RSS Blog 稿 - 546  - 0  - 1700  -   201303 (1) 201210 (1) 201209 (4) 201201 (2) 201112 (1) 201111 (1) 201110 (5) 201107 (5) 201106 (4) 201105 (4) 201104 (6) 201102 (4) 201101 (3) 201011 (3) 201003 (1) 201001 (4) 20091
    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言語による最新アルゴリズム事典』


    C1991ISBN4-87408-414-12400 1.1M 198710Pascal使19912ANSI C使C 100200310020 Frequently Asked Questions C ANSI C
  • 1