タグ

cに関するhogelogのブックマーク (4)

  • SIGNAL を受信する - すがブロ

    SIGNAL を受信するには 昔は signal 関数を使ってシグナルハンドラを設定していたけど、今は sigaction 関数を使うようだ。 参考 システムプログラム(第5週) 試しに実装してみた 大概の SIGNAL のサンプルソースだと、シグナル受けたよーで終わるのが多いけど、実際のプログラムの時はシグナルを受けたタイミングとプログラムの終了タイミングが異なるケースが多いので*1、後者の仕様で作成してみた。 受けるとる SIGNAL は SIGINT と SIGTERM にした。特に意味はない。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <signal.h> #define SIGNAL_ON 0 #define SIGNAL_OFF 1 int is_signal_int = SIGNAL

    SIGNAL を受信する - すがブロ
    hogelog
    hogelog 2009/05/14
  • C/C++ for Computational Physics

    Last revised on May 25, 2000 UNIX & XWindow 環境における C/C++プログラミング言語の基礎とその計算物理への応用を解説します。 このホームページの古い版の偽ミラーサイトが存在するのでご注意ください。 物のサイトは http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/ です。 前書き 推奨図書一覧 C言語とC++言語の基礎文法の初心者向け解説 (プログラム初心者を対象としたC/C++言語の入門です) 第1章 C言語とC++言語の役割 第2章 簡単な計算 第3章 ループで繰り返し計算 第4章 配列で大量データ処理 第5章 関数で計算の分担 第6章 文字列の操作 第7章 ファイルの操作 第8章 グラフィック(XWindow System利用者向け) 高校物理の計算例 (高校生を対象として初歩的な物

    hogelog
    hogelog 2007/11/26
  • 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
  • glibc の fopen() で 'm' オプションを使う - bkブログ

    glibc の fopen() で 'm' オプションを使う 最近の glibc の fopen() には 'm' というオプションがあると知りました。 'm' オプションを指定すると、リードオンリーでファイルを開いたとき、可能な場合、 mmap が内部的に使われるようになります。 次のようなプログラムに対して strace をかけると fgets() の内部的で read システムコールが呼ばれていることがわかります。 #include <stdio.h> #include <assert.h> int main() { char buf[1024]; FILE *fp = fopen("/etc/shells", "r"); // FILE *fp = fopen("/etc/shells", "rm"); // using mmap I/O assert(fp != NULL); f

  • 1