タグ

*programmingとunixに関するkiririmodeのブックマーク (4)

  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
  • EmacsWiki: サイトマップ

    The EmacsWiki is dedicated to documenting and discussing EmacsAndXEmacs and EmacsLisp. See the MissionStatement for more information. You can edit this website. There’s a link, Edit this page, at the bottom of this and other pages. Please check Comments on SiteMap before editing this SiteMap page, however. How to use this siteHowToNavigate – how to find what you’re looking for HowToEdit – how you

  • 9月になったし、もうそろそろ書いておくか

    これから就職活動するバカはいないだろうけど、そういう人もいるだろうから少し書いておこう。 どちらかというと、アンチMS派なUnix技術者がWindowsだけの世界で仕事をする辛さを。 Unix技術者は、業務実績にSolaris/AIX/Linuxって書いてあってもちゃんと質問しろ。Windows仕事は無いですよね?って。 僕がべるために職を手にしているこのIT業界というのは、バッドノウハウとMicroSoftExcelで出来ている。 その為、僕が手にしたUnixの知識は、特定の仕事以外でしか役に立たないし、使わない。 viだろうが、TeXだろうが、Xの知識よりも、MFCとVBAのちょっとした知識のあるヤツが上にみられる。 ExcelWindowsの知識があればそれだけで仕事になるからだ。 いいか、viやTeX、Xなんて捨てちまえ、Excelがあればそれでいいのだ。 Unix技術者で

    9月になったし、もうそろそろ書いておくか
  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div

    kiririmode
    kiririmode 2007/08/25
    SEGFAULT_SIGNALSってなに?
  • 1