タグ

posixに関するzyxwvのブックマーク (3)

  • シリアル通信(POSIX編)

    [ C++で開発 ] シリアル通信プログラム(POSIX編) UNIX系OSでは、POSIX規格によりおおよそシリアル通信のシステムコール等が標準化されています。(POSIX.1-2001らしい) シリアル通信の設定に関するメモ シリアル通信(RS-232C)での設定について、最低限前提となる知識を整理します。 調歩同期式(無手順) スタートビッド、ストップビット キャラクタ(1文字)の前後に、文字を識別できるように必ず付けるのがスタートビットおよびストップビットです。スタートビットは1ビットですが、ストップビットは1ビット・1.5ビット・2ビットがあります。 パリティビット EVEN(偶数)、ODD(奇数)、なし、の3つから選択します。EVENまたはODDのときは、データビットとパリティビットの中でビットが1となる数をEVENまたはODDになるよう調整します。 ビットレート RTS Re

    zyxwv
    zyxwv 2015/10/27
    ポートの開き方は非カノニカルモードと RAW モードの2つ。非カノニカルモードでは ICANON/ECHO/ECHOE/ISIG が有効になる。
  • 安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)

    UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されますが、シグナルハンドラで行える処理には制約があり、これを無視したコードを書くと脆弱性につながる恐れがあります。今回はシグナルハンドラの制約に関するルールを見てみましょう。 シグナルハンドラの制約 UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されます。ユーザが[Ctrl]-[C]キーを押してプログラムを中断しようとしたり(SIGINT)、整数オーバーフローが発生したり(SIGFPE)すると、それらのイベントに対応するシグナルがカーネルからプロセスに対して通知されるのです。プログラマは、これらのシグナルを受信した時に特定の動作を行わせる「シグナルハンドラ」を書くことが

    安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)
    zyxwv
    zyxwv 2015/06/05
    シグナルハンドラ内で安全に(未定義の動作にならずに)行える処理には制限がある
  • Is it valid to have multiple signal handlers for same signal?

    zyxwv
    zyxwv 2015/02/04
    signal ではなく sigaction を使う
  • 1