タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

unixとperlに関するsugyanのブックマーク (4)

  • ファイルディスクリプタ(file descriptor)について調べてみた - kotaroito's notes

    Perl Hackers Hub 第6回 UNIXプログラミングの勘所(2)を読んでいたがよくわからなかったので、Operating System ConceptsやMANなどを読んで一から理解してみる。 Operating System Concepts 作者: Abraham Silberschatz出版社/メーカー: John Wiley & Sons Ltd発売日: 2009/02/13メディア: ペーパーバック購入: 1人 クリック: 39回この商品を含むブログ (4件) を見る open()システムコール The open() system call first searches the system-wide open-file table to see if the file is already in use by another process. If it is, a

    ファイルディスクリプタ(file descriptor)について調べてみた - kotaroito's notes
  • 第6回 UNIXプログラミングの勘所(3) | gihyo.jp

    ネットワークプログラムとSIGPIPE 「私の書いたサーバが突然死するんです。どうしてでしょうか」という質問を受けることがあります。これは多くの場合、SIGPIPEの処理を忘れていることが原因です。SIGPIPEとは、切断されたネットワークソケットなどにデータを書き込もうとした際に送出されるUNIXシグナルです。特に設定しない限り、プロセスはSIGPIPEを受け取ると強制終了されます。そのため、通信が突然切断される可能性のあるTCPサーバにおいては、SIGPIPEを無視するよう設定する必要があります。 # デフォルトの動作(SIGPIPEの場合はプロセスの終了)に設定 $SIG{PIPE} = 'DEFAULT'; # SIGPIPEを無視するよう設定 $SIG{PIPE} = 'IGNORE'; # SIGPIPEを受信した際に実行するサブルーチンリファレンスを # 設定 $SIG{PI

    第6回 UNIXプログラミングの勘所(3) | gihyo.jp
  • 出力先が端末かどうか調べる。 - 技術メモ帳

    g:subtech:id:secondlife さんのところで、 パイプで受け取るとエスケープシーケンスが消去されてるよ!どうやってんだこれ。 というのがあったので、コメント欄に どうやって実現しているのかを書いていた時に、 すでに回答がされているのに気づいて、 俺は何をやっていたんだ、とショックを受けたのでココに書く。 実は、isatty(fd) という関数があり、 指定したファイルディスクリプタが端末かどうか調べる事が出来ます。 つまり、出力先が端末だったとき、エスケープシーケンスを付加し、 端末ではなく、別のプログラムの標準入力に渡されたときは、 エスケープシーケンスを除去しています。 以下は、 標準出力がターミナルだったときのみ "this is terminal" と出力します。 1 #include <stdio.h> 2 #include <unistd.h> 3 4 int

    sugyan
    sugyan 2009/07/29
    isatty
  • 16進数のテーブルを表示するワンライナーを考える まとめ - すぎゃーんメモ

    16進数のテーブルを表示するワンライナーを考える - すぎゃーんメモのまとめ。追記しまくって長くなったので整理する。 ()内はperlコマンドも含めた文字数。 (52)最もオーソドックスにfor文を回して文字列連結する方法 perl -le'for$i(@a=(0..9,A..F)){print map"$i$_ ",@a}' (52)for文を式修飾子で後置させる方法 perl -le'$i=$_,print map"$i$_ ",@!for@!=(0..9,A..F)' (50)代入式を使わず正規表現のマッチ変数を利用する方法(from こーのいけさん) perl -le'/./,print map"$&$_ ",@:for@:=(0..9,A..F)' (50)配列の各要素に対しprintfで表示させる方法(from id:kazuhookuさん) perl -e'printf"%0

    16進数のテーブルを表示するワンライナーを考える まとめ - すぎゃーんメモ
    sugyan
    sugyan 2009/03/27
    なるほどー。ありがとうございます! > id:lurker
  • 1